级联组合框的 Visual Basic ACCDB 文件读取
Posted
技术标签:
【中文标题】级联组合框的 Visual Basic ACCDB 文件读取【英文标题】:Visual Basic ACCDB File Read for Cascading Combo Box 【发布时间】:2019-02-13 17:39:53 【问题描述】:所以我有一个包含三列的访问数据库:制造、夹具和模式
我正在使用下面的代码在我的表单中创建级联组合框。
Imports System.Data.OleDb
Public Class Add_Fixtures
Dim con As New OleDbConnection
Dim constring As String
Dim cmd As New OleDbCommand
Dim dr As OleDbDataReader
Dim cmd1 As New OleDbCommand
Dim dr1 As OleDbDataReader
Dim cmd2 As New OleDbCommand
Dim dr2 As OleDbDataReader
Private Sub Add_Fixtures_Load(sender As Object, e As EventArgs) Handles Me.Load
constring = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|/FixtureLibrary.accdb"
With con
.ConnectionString = constring
.Open()
End With
With cmd
.Connection = con
.CommandType = CommandType.Text
.CommandText = "SELECT DISTINCT Fixtures.Manufacture from Fixtures;"
End With
dr = cmd.ExecuteReader()
While dr.Read
cbManufacture.Items.Add(dr("Manufacture"))
End While
With cmd1
.Connection = con
.CommandType = CommandType.Text
.CommandText = "SELECT from Fixtures where [Manufacture]='" & Me.cbManufacture.Text & "';"
End With
dr1 = cmd1.ExecuteReader()
While dr1.Read
cbFixture.Items.Add(dr1("Fixture"))
End While
With cmd2
.Connection = con
.CommandType = CommandType.Text
.CommandText = "SELECT DISTINCT Fixtures.Mode from Fixtures where [Fixture] ='" & Me.cbFixture.Text & "';"
End With
dr2 = cmd2.ExecuteReader()
While dr2.Read
cbMode.Items.Add(dr2("Mode"))
End While
End Sub
End Class
但是在这一行:dr1 = cmd1.ExecuteReader()
我收到此错误
System.Data.OleDb.OleDbException: 'SELECT 语句包含拼写错误或缺失的保留字或参数名称,或者标点不正确。'
有人知道为什么或是什么原因造成的吗?
干杯
【问题讨论】:
你有一个错字。运行调试器应该可以准确地告诉你它在哪一行。 代码是 VB.NET 但您将其标记为 VBA。你确定标签吗? VB.NET 和 VBA 是两种截然不同的语言,它们共享前两个字母,仅此而已。 修正了错字,但现在在组合框 cbFixture 或 cbMode 中没有得到任何东西 你应该为你的新问题提出一个新问题。如果这个问题解决了,那你要么自己回答,要么以后觉得对别人没有帮助就删掉。 【参考方案1】:您没有选择任何字段,并且属性Text仅对具有焦点的控件有效,因此:
.CommandText = "SELECT * from Fixtures where [Manufacture]='" & Me.cbManufacture.Value & "';"
【讨论】:
那应该是个参数。以上是关于级联组合框的 Visual Basic ACCDB 文件读取的主要内容,如果未能解决你的问题,请参考以下文章
将电子表格 (OpenOffice) 导入 Visual Basic .net 组合框
Visual Basic - 使用组合框将 Access 表中的数据填充到文本框