【问题标题】:How to get records by using foreign key in one table using primery key another table in visual basic 6.0如何在Visual Basic 6.0中使用主键在一个表中使用外键获取记录
【发布时间】:2019-10-04 12:26:18
【问题描述】:

我在同一个数据库中有两个表:

  • table1 包含order_no(primery key)cust_name
  • table2 包含order_no(foreign key)(单次订购的每个食品也有重复条目)、table_noitemsdatecust_name 等等......

所以我的问题是如何使用 table1 的主键 order_no 在列表框和数据网格或文本框中显示记录,以便我可以获取在 table2 中分配了具有相同订单号的外键的所有记录

我正在使用 Visual Basic 6.0

【问题讨论】:

  • 听起来像INNER JOIN,你可以在互联网上找到很多例子。 INNER JOIN 关键字选择在两个表中具有匹配值的记录 (order_no)。

标签: sql vb6 ms-access-2007


【解决方案1】:

试试这样的

Private Sub mLoadData(lOrder_no As Long)
    ' add a reference to Microsoft ActiveX Data Objects 2.8 Library
    ' add a MSHFLXGD (Microsoft Hierarchical FlexGrid) control named grData to form
    Dim rc As ADODB.Recordset
    Dim db As New ADODB.Connection
    Dim sConnString As String, sSQL As String

    'sConnString = create a connection string according to your database - https://www.connectionstrings.com/
    db.Open sConnString

    sSQL = "SELECT * FROM table2 WHERE order_no =" & lOrder_no
    Set rc = db.Execute(sSQL)
    Set grData.DataSource = rc

End Sub

【讨论】:

  • 这只是从 table2 中检索数据...我想使用primery key访问 table1 中的数据
  • 他已经给了你所有你需要的VB6代码,你可以再进一步修改SELECT语句。
  • sSQL = "SELECT * FROM " & table_name & " WHERE order_no =" & lOrder_no
  • 如果用户可以在那里输入数字,我建议使用参数化查询(尽管它看起来不是这样 - see this)。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-06-09
  • 1970-01-01
  • 1970-01-01
  • 2017-03-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多