我正在创建一个应该与我的Access数据库一起使用的VB.NET应用程序。我已经创建并将Microsoft Access 2010数据库(.accdb)导入VB.NET,并使其中一个表显示在我的表单上。在表单1上,我有一个链接到表单2的按钮,在该表上显示数据库表。
我想要做的是生成某种IF
语句,以说明是否取消选中记录中的特定字段,而不是将其显示在FORM 1的列表框中。
例如,我有一个名为“已启动”的文件,其数据类型为Yes/No
。如果未选中特定记录(空复选框),我希望它显示在表单1的列表框中。
有人可以告诉我这是否可行以及如何绕过这样做?
编辑:在尝试了一些事情之后,这是我到目前为止所做的。表'作业'被突出显示为未声明('作业'未被声明。由于其保护级别,它可能无法访问。)我无法弄清楚如何执行此操作,如数据库已连接。 Private Sub ListBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles lstTostart.SelectedIndexChanged
Dim Started, SQLString As String
Dim ConnectString As String = "Provider = Microsoft.ACE.OLEDB.12.0;" & "Data Source = KNmidlands_db.accdb"
SQLString = "SELECT * FROM Jobs WHERE Started = 0" '--> 1 = Yes / 0 = No
If Jobs.Rows.Count > 0 Then
For x As Integer = 0 To Jobs.Rows.Count - 1
lstTostart.Items.Add(Jobs.Rows(x).Item("whatever"))
Next
End If
End Sub
由于 亚历山大
答案 0 :(得分:1)
Public Class Form1
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'Me.OleDbDataAdapter1.Fill(Me.DataSet11.Jobs)
Fill_List()
End Sub
Sub Fill_List()
Dim ConnectString As String = "Provider = Microsoft.ACE.OLEDB.12.0; Data Source = kn.accdb"
Dim con As New OleDbConnection(ConnectString)
Dim da As OleDb.OleDbDataAdapter
Dim dt As New DataTable
con.Open()
da = New OleDb.OleDbDataAdapter("SELECT * FROM Jobs WHERE NOT Started = true", con)
da.Fill(dt)
MsgBox(Format(dt.Rows.Count))
If dt.Rows.Count > 0 Then
For x As Integer = 0 To dt.Rows.Count - 1
ListBox1.Items.Add(dt.Rows(x).Item("Job ID"))
Next
End If
con.Close()
End Sub
End Class