【问题标题】:VB6.0 with DataControl Database ProgrammingVB6.0 与 DataControl 数据库编程
【发布时间】:2011-04-04 10:04:40
【问题描述】:

嘿,我能问你一件事吗?我正在使用 VB6.0,但通过 DataControl 连接数据库时遇到了一些问题。我有一个名为 tblEmployee 的表,另一个是 tblPosition 然后我将这两个表的值传递给分别是两个 DataControls。然后我怎样才能获得 Position 字段的某一行的值。使用我的代码,我的 Position 字段仅返回第一行。这是我的代码

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

结束子

【问题讨论】:

    标签: vb6


    【解决方案1】:

    我看不到您已将值“传递”到名为 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 返回分层记录集。

    【讨论】:

    • 是的,我设置了两个 DataControl [DatabaseName、RecordSetType 和 RecordSource] 的属性。我该怎么做呢,tblEmployee 有一个 idxEmployee 索引,而 tblPosition 有 idxPosition。请给我一些语法。
    • 程序应首先查找 ID 号,当 ID 号存在时,进一步的信息[lname,fname,mi,position] 应分别出现 n 个文本框。
    猜你喜欢
    • 2015-04-14
    • 1970-01-01
    • 2013-08-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-17
    相关资源
    最近更新 更多