Rss & SiteMap

Foxtable(狐表) http://www.foxtable.com

新一代数据库软件,完美融合Access、Foxpro、Excel、vb.net之优势,人人都能掌握的快速软件开发工具!
共5 条记录, 每页显示 10 条, 页签: [1]
[浏览完整版]

标题:求助可不可以从两个表中取列表数据?

1楼
ddlzq 发表于:2011/12/15 16:56:00

各位老师:

      好久不见,可不可以从两个SQL数据库表中获取两个表中字段组合成一个列表?目前我只会一个。在同一个表中可以,但SQL表就不行了。

同一个表我用的是

If e.IsFocusCell Then
    If e.Col.Name = "姓名" Then
       e.Col.Combolist = DataTables("海外人员").GetComboListString("姓名") & "|" &  DataTables("国内人员").GetComboListString("姓名")
    End If
End If

 

If e.IsFocusCell Then
    If e.Col.Name = "姓名" Then
    Dim cmd As New SQLCommand
    Dim dt As DataTable
    cmd.C
    cmd.CommandText = "SELECT DISTINCT 姓名 From {海外人员}"
    dt = cmd.ExecuteReader
    Tables("订单表").Cols("业务员").Combolist = dt.GetComboListString("姓名")
    End If
End If

2楼
狐狸爸爸 发表于:2011/12/15 17:23:00

参考这里头的Union运算符:

 

http://www.foxtable.com/help/topics/0688.htm

 

 

3楼
布莱克朱 发表于:2011/12/15 18:58:00

If e.IsFocusCell Then
If e.Col.Name = "姓名" Then
Dim cmd As New SQLCommand

Dim cmd1 As New SQLCommand
Dim dt As DataTable

Dim dt1 As DataTable
cmd.C

cmd1.C
cmd.CommandText = "SELECT DISTINCT 姓名 From {海外人员}"

cmd1.CommandText = "SELECT DISTINCT 姓名 From {国内人员}"
dt = cmd.ExecuteReader

dt1 = cmd1.ExecuteReader
Tables("订单表").Cols("业务员").Combolist = dt.GetComboListString("姓名")& "|" & Dt1.GetComboListString("姓名")
End If
End If

 

笨办法

4楼
ddlzq 发表于:2011/12/19 9:16:00

If e.IsFocusCell Then
    If e.Col.Name = "姓名" Then
        Dim cmd As New SQLCommand
        Dim dt As DataTable
        cmd.C
        cmd.CommandText = "Select 业务员 FROM {国外业务} UNION SELECT 业务员 FROM {国内业务} "
        dt = cmd.ExecuteReader
        e.Col.Combolist = dt.GetComboListString("业务员")
 
    End If
    End If

 

感谢狐爸,使用以上代码,从两个表获取到了列表。另还有个问题需请教

我想控制从列表选择出列表指定值后,会控制从两表对应人员带出身份证号,我用的是

DataColchanged事件

 

If e.DataCol.Name = "姓名" Then
    Dim cmd As New SQLCommand
    Dim dt As DataTable
    Dim dr As DataRow = e.DataRow
    cmd.C
    cmd.CommandText = "SELECT * From {国内业务} Where [业务员] = '" & dr("基础信息_姓名") & "'" 

    dt = cmd.ExecuteReader
    If dt.DataRows.Count > 0 Then
        dr("基础信息_姓名") = dt.DataRows(0)("业务员") 

        dr("基础信息_身份证号") = dt.DataRows(0)("身份证号")
      Else
        dr("基础信息_姓名") = Nothing
        dr("基础信息_身份证号") = Nothing

End If
End If

 

这是一个表可以控制非列表列出值不可填写,那么,如何控制从两个表也有这个效果呢?请指教。

5楼
ddlzq 发表于:2011/12/19 11:29:00

哈哈 研究出来了!

If e.DataCol.Name = "姓名" Then
Dim cmd As New SQLCommand
Dim dt As DataTable
Dim dr As DataRow = e.DataRow
cmd.C
cmd.CommandText = "SELECT 身份证号 From {国内业务} Where [业务员] = '" & dr("基础信息_姓名") & "' UNION SELECT 身份证号 From {国外业务} Where [业务员] = '" & dr("基础信息_姓名") & "'"

dt = cmd.ExecuteReader
If dt.DataRows.Count > 0 Then
dr("基础信息_姓名") = dt.DataRows(0)("业务员")

dr("基础信息_身份证号") = dt.DataRows(0)("身份证号")
Else
dr("基础信息_姓名") = Nothing
dr("基础信息_身份证号") = Nothing

End If
End If

共5 条记录, 每页显示 10 条, 页签: [1]

Copyright © 2000 - 2018 foxtable.com Tel: 4000-810-820 粤ICP备11091905号

Powered By Dvbbs Version 8.3.0
Processed in .03125 s, 2 queries.