MS访问数据库不允许在SQL查询中将字段与“memo”数据类型进行比较。有没有办法在VBA中做到这一点?
如果备忘录的大小> 255个字符
,则简单比较不起作用答案 0 :(得分:2)
使用记录集时,您可以比较它们。
表:Table1(int,memo,memo)
id memo1 memo2 1 A B 2 D C
剧本:
Public Sub test()
Dim conn As New ADODB.Connection
Dim rst As New ADODB.Recordset
Dim strSql As String
Set conn = CurrentProject.Connection
strSql = "select * from Table1"
rst.Open strSql, conn
rst.MoveFirst
While Not rst.EOF
Debug.Print rst("memo1") > rst("memo2")
rst.MoveNext
Wend
rst.Close
conn.Close
End Sub
输出:
False
True
这是你的意思吗?
更新:对于我来说,对于长度为4000个字符的字段,只测试它,长度函数也能正常工作(来自2003年的vba)
问候,彼得
答案 1 :(得分:0)
你可能有一些特定的东西,但这个简单的情况可以正常工作,没有错误:
CREATE TABLE TestMemo (memo1 MEMO, memo2 MEMO)
;
INSERT INTO TestMemo (memo1, memo2) VALUES ('Blah', 'Blah')
;
INSERT INTO TestMemo (memo1, memo2) VALUES ('123456789A123456789A123456789A123456789A123456789A123456789A123456789A123456789A123456789A123456789A123456789A123456789A123456789A123456789A123456789A123456789A123456789A123456789A123456789A123456789A123456789A123456789A123456789A123456789A123456789A123456789A123456789A123456789A123456789A123456789A', '123456789A123456789A123456789A123456789A123456789A123456789A123456789A123456789A123456789A123456789A123456789A123456789A123456789A123456789A123456789A123456789A123456789A123456789A123456789A123456789A123456789A123456789A123456789A123456789A123456789A123456789A123456789A123456789A123456789A123456789Z')
;
SELECT memo1, memo2
FROM TestMemo
WHERE memo1 = memo2
;
我知道这会截断255个字符。这是你的问题吗? - 编辑:我已经测试了超过255个字符的值,并且它没有被截断。
答案 2 :(得分:-1)
我想最好的方法是将两个Memo字段保存到2个文件中,然后与文件进行比较。