我有一个Excel文件,其中包含我必须导入到由我创建的Access数据库中的数据列表。在db中,我有一个名为'Description'的列。当描述比单元格更长时,我必须更新我的字段,但我不知道如何正确编写查询。
在我的Excel文件中,描述从C列开始,所以当我想提取字符串时,我写了一行代码:
cap.Description = grid(r, 3).Text
我尝试编写更新查询,但它不起作用,因为VS向我显示了这条消息:“附加信息没有给出一个或多个必需参数的值”。
Public Sub updateDB(ByVal PathDB As String)
Dim db As New cDB
Dim v As New cVoice
Dim rs As ADODB.Recordset = db.RecordSet
db.connect_DB(PathDB)
db.get_rs("UPDATE Voice SET Description = @v.Description")
db.close_DB()
End Sub
Public Function get_rs(ByVal query As String) As ADODB.Recordset
If db Is Nothing Then rs = Nothing : Return rs
rs = New ADODB.Recordset
rs.CursorType = ADODB.CursorTypeEnum.adOpenStatic
rs.LockType = ADODB.LockTypeEnum.adLockOptimistic
rs.Open(query, db)
Return rs
End Function
Public Function connect_DB() As ADODB.Connection
If Not My.Computer.FileSystem.FileExists(pPathDB) Then db = Nothing : Return db
db = New ADODB.Connection
db.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & pPathDB & ";Persist Security Info=False"
db.Open()
If db.State = ConnectionState.Closed Then db = Nothing
Return db
End Function
然后我试图用Description = @v.Description
愚蠢地切换Description = grid(r, 3).Text
,但显然这种方法不起作用。
那么,我怎么表达我必须用Excel中的C单元更新我的db列?
答案 0 :(得分:1)
尝试将查询设为:
db.get_rs("UPDATE Voice SET Description = '" + v.Description +"'")
由于此错误意味着此处提及的值或错过的值拼写错误:no value given for one or more required parameters