我正在尝试连接到VBA中的访问数据库文件并创建一个表但我似乎无法在插入后查询这些值。例如,查询“SELECT * FROM TESTME WHERE'Portfolio'='FALL'总是返回没有记录。我甚至尝试过”虽然不是RS.EOF“,但它始终是真的。任何想法我的语法有什么问题?谢谢
Sub CreateTblinDb()
On Error GoTo errhandler:
Dim scon As String
Dim ssql As String
scon = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Jet OLEDB:Engine Type=" & Jet4x & _
";Data Source=" & "C:\a2000.mdb"
'creates a table in the database
Dim cn As ADODB.Connection
Dim rs As ADODB.Recordset
ssql = "CREATE TABLE TESTME2 ('Portfolio' memo, 'TradeType' memo)"
Set cn = New ADODB.Connection
cn.Open scon
cn.Execute ssql
ssql = "INSERT INTO TESTME2 VALUES('FALL','TEST')"
cn.Execute ssql
ssql = "SELECT * FROM TESTME2 WHERE 'Portfolio' = 'FALL'"
Set rs = New ADODB.Recordset
rs.Open ssql, cn, adOpenKeyset, adLockOptimistic
Debug.Print rs.RecordCount ' ALWAYS RETURNING 0
Exit Sub
errhandler: MsgBox Err.Description 结束子
答案 0 :(得分:2)
'Portfolio'
和'FALL'
是两个不同的字符串,永远不会相等;甚至没有在2011年6月23日下午6:29。
更重要的是,由于类似的原因,您的表定义语句看起来不正确。
编辑:
由于反引号不是ANSI SQL,因此还有其他一些尝试:
修复表定义语句后,您可以尝试此查询:
SELECT * FROM TESTME2 WHERE [Portfolio] = 'FALL'
编辑:
按要求示例DDL ......
CREATE TABLE TESTME2 ([Portfolio] memo, [TradeType] memo)