1

对不起,我试图寻找答案,但我很难将我找到的示例翻译成我自己的场景。

我有一个 MS Access 数据库,其中有一个“员工”表,其中包含以下列:

“员工 ID”、“姓名”、“中间”、“最后”、“雇用日期”、“解雇日期”。

另一个具有以下列的表“工作”:

“日期”、“员工 ID”、“活动”、“工作时间”、“部门”、“班次”、“使用的设备”、

datagridview 绑定到“工作”表。我在设计时使用查询编辑器进行查询调用 FillbyDate(),因此仅加载特定日期的条目。

我想创建一个未绑定的列来显示“员工表”中员工的姓名(姓名、中间和姓氏),使用员工 ID 来查找它。

我对使用 VB.Net 编码完全陌生,这可能是我不理解或找不到正确示例的原因。我将不胜感激一些示例代码和每个步骤的注释,以了解事情是如何工作的。

仅供参考,我正在阅读几本编码书籍:使用 VB.Net 进行实用数据库编程、Clearly Visual Basic 2010、Masterig MS Visual Basic 2010

先感谢您。

4

1 回答 1

0

更好的方法是创建一个 SQL 查询,该查询将基于 Employee ID 字段连接表,并根据日期字段过滤数据。DataGridView 将绑定到将根据该 SQL 查询填充的 DataTable。

示例代码:

Dim FilterStr1 As String = "03/01/2013"
Dim DBPathStr1 As String = "C:\db1.mdb"

Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
    Dim SqlConnStr1 As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & DBPathStr1 & ";"

    Dim SqlStr1 As String = <SQL>
                                SELECT
                                    W.[Date]
                                    ,W.[Employee ID]
                                    ,W.[Activity]
                                    ,W.[Hours worked]
                                    ,W.[Department]
                                    ,W.[Shift]
                                    ,W.[Equipment Used]
                                    ,E.[Name]
                                    ,E.[Middle]
                                    ,E.[Last]
                                FROM [Work] AS W
                                INNER JOIN [Employees] AS E
                                    ON W.[Employee ID] = E.[Employee ID]
                                WHERE W.[Date] = #<%= FilterStr1 %>#
                            </SQL>.Value

    Dim OleDBAdap1 As New OleDbDataAdapter(SqlStr1, SqlConnStr1)
    Dim SqlDTable1 As New DataTable

    OleDBAdap1.Fill(SqlDTable1)
    DataGridView1.DataSource = SqlDTable1

    OleDBAdap1.Dispose()
End Sub

要使用此代码,您需要使用DBPathStr1MS Access 数据库的路径更改变量的值,并为变量设置日期值FilterStr1

编辑

FilterStr1可以使用 DateTimePicker 控件分配变量的值。为此,您需要在表单上添加一个 DateTimePicker 控件并添加以下代码。

Private Sub DateTimePicker1_ValueChanged(sender As System.Object, e As System.EventArgs) Handles DateTimePicker1.ValueChanged
    FilterStr1 = DateTimePicker1.Value.ToString("dd/MM/yyyy")
End Sub
于 2013-07-17T22:44:12.710 回答