2
我有一個Excel文件,其中包含必須導入到由我創建的Access數據庫中的數據列表。在db裏我有一個名爲'Description'的列。它可能會發生,當描述比單元格更長時,我必須更新我的字段,但我不知道如何正確寫入查詢。從Excel文件查詢更新
在我的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單元格?
需要的參數賦值:HTTPS ://docs.microsoft.com/en-us/sql/ado/reference/ado-api/parameters-collection-ado –
這似乎不是有效的VBA代碼。例如,你不能像在'Dim rs As ADODB.Recordset = db.RecordSet'中那樣在聲明中分配一些東西。此外,許多'set'命令丟失 – FunThomas
@FunThomas我寫其他簡單的查詢和程序正確運行 – Matteo