作者kurapica1106 ()
看板Database
标题[SQL ] 同样使用update SQLite可以 但ACCESS不行
时间Wed Oct 21 01:41:08 2020
资料库名称:SQLite3, Office 365 ACCESS
资料库版本:
内容/问题描述:
我是非资工背景的初学者
在使用Excel VBA尝试使用sql update
Dim Conn As Object
Dim SQL As String, Dbtype As String
Dbtype = "Access" '选择使用Access或是SQLite
'Dbtype = "SQLite"
Set Conn = connectSQL(Dbtype)
SQL = "update book set price = 500 where id = 2"
Conn.Execute SQL
Conn.Close
Set Conn = Nothing
同样的语法 update book set price = 500 where id = 2
在SQLite可以使用 但在ACCESS却出现"准则运算式的资料类型不符合"
上网查了之後知道这是因为丢入的资料与资料库内设定资料型态不合才出现的错误
但我不知道错在哪里
不知道板上的大大能不能帮小弟解惑
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 223.136.37.221 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Database/M.1603215672.A.F95.html
1F:推 LPH66: 你去查你的 Access 资料库是怎麽设定的 10/21 04:39
2F:→ LPH66: 特别是你有用到的栏位 `price` 和 `id` 10/21 04:39
Dim Conn As Object
Dim SQL As String, Dbtype As String
Dbtype = "Access"
'Dbtype = "SQLite"
Set Conn = connectSQL(Dbtype)
SQL = "Create table book (ID text, Name text, Page int, Price int)"
Conn.Execute SQL
Conn.Close
Set Conn = Nothing
上面是一开始设定资料库的程式
Dim Conn As Object
Dim SQL As String, Dbtype As String
Dbtype = "Access"
Set Conn = connectSQL(Dbtype)
SQL = "insert into book (ID, Name, Page, Price) values (1, 'Word 2013',
356, 450)"
Conn.Execute SQL
SQL = "insert into book (ID, Name, Page, Price) values (2, 'Python', 123,
420)"
Conn.Execute SQL
SQL = "insert into book (ID, Name, Page, Price) values (3, 'C++', 545,
360)"
Conn.Execute SQL
Conn.Close
Set Conn = Nothing
这段是输入三笔资料
到了後面我发现我除了使用update有"准则运算式的资料类型不符合"的问题外
使用delete from book where id = 3也会出现相同的错误讯息
不知道ACCESS的那个ID栏位设定出了什麽问题
晚点回公司再查查
感谢大大
3F:→ funk6478: 你ID设text 但你where id = 3是把它当数值 10/21 15:35
哇 真的
太感谢你了
※ 编辑: kurapica1106 (223.136.37.221 台湾), 10/21/2020 17:18:37