VB6.0与DataControl数据库编程

时间:2011-04-04 10:04:40

标签: vb6

嘿,我可以问你一件事吗?我正在使用VB6.0,我的数据库通过 DataControl 连接有问题。我有一个名为 tblEmployee 的表,另一个是 tblPosition 然后我将两个表的值传递给两个 DataControls 。然后,我如何获得 位置 字段的某一行的值。使用我的代码,我的 位置 字段仅返回第一行。这是我的代码

Private Sub cmdSearchEmployee_Click()
With datEmployee.Recordset
    datEmployee.Recordset.Index = "idxid"
    datEmployee.Recordset.Seek "=", txtIDNumber.Text

    If .NoMatch = True Then
        MsgBox ("No Record Found!")
    Else
        Me.txtLastName.Text = .Fields("lname")
        Me.txtFirstName.Text = .Fields("fname")
        Me.txtMiddleName.Text = .Fields("mi")

        With datPosition.Recordset
            Me.txtPosition.Text = .Fields("position")

        End With
    End If
End With

End Sub

1 个答案:

答案 0 :(得分:0)

我看不到您已将“传递值”传递给名为datPosition的DataControl。这可能是问题吗?例如你在哪里

    With datPosition.Recordset
        Me.txtPosition.Text = .Fields("position")

    End With

......应该更像这样:

    With datPosition.Recordset
        .Index = "some_index??"
        .Seek "=", "some_value??"
        Me.txtPosition.Text = .Fields("position")
    End With

另外,请考虑使用记录集'Filter删除与您的条件不符的行,然后RecordCount遍历符合条件的行。

进一步考虑通过在SQL代码中创建tblEmployeetblPosition之间的连接来返回单个记录集,或者使用带有SHAPE语法的MsDataShape返回分层记录集。