以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助]临时表输入问题  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=46797)

--  作者:syzsyk
--  发布时间:2014/2/27 18:07:00
--  [求助]临时表输入问题
关于临时表输入问题:
1、有一个表A:

图片点击可在新窗口打开查看此主题相关图片如下:tu1.png
图片点击可在新窗口打开查看
第一列可重复,第二列不重复并与第一列有对应关系。
2、有一个打开项目就产生的临时表,第二列的数据是通过窗口的组合框从表A中取得的,确定的代码是:
   Dim s As Row = Tables("临时表").Addnew
   s("第二列")=e.form.controls("Combobox1").text
       If s("第二列") = Tables("表A").Current("第二列") Then
            s("第一列")= Tables("表A").Current("第一列")
       End If
3、我的问题是上面的红色代码如何改写确保临时表第二列自动输入后,第一列始终与表A对应的值同时自动输入?否则结果就是见下面的图,第三行第一列没有自动输入对应的数据:

图片点击可在新窗口打开查看此主题相关图片如下:tu2.png
图片点击可在新窗口打开查看
例子:
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目7.foxdb







--  作者:有点甜
--  发布时间:2014/2/27 20:48:00
--  
  代码

Dim s As Row = Tables("临时表").addnew
s("第二列")=e.form.controls("Combobox1").text
Dim fdr As DataRow = DataTables("表A").Find("第二列 = \'" & s("第二列") & "\'")
If fdr IsNot Nothing Then
    s("第一列") = fdr("第一列")
End If


--  作者:syzsyk
--  发布时间:2014/2/27 21:16:00
--  
自己刚才解决了,我的代码如下:
 Dim s As Row = Tables("临时表").addnew
    s("第二列")=e.form.controls("Combobox1").text
      With Tables("表A")
        Dim r As Integer
        r = .Find(s("第二列"), 0,"第二列", False, False, True)
        If r > - 1 Then \'如果找到符合条件的行   
        .Position = r  \'则选择该行
        End If 
      End With
   If s("第二列") = Tables("表A").Current("第二列") Then
      s("第一列")= Tables("表A").Current("第一列")
   End If

但有点甜的代码更简洁,非常感谢有点甜!