如何在vba中将字段与'Memo'数据类型进行比较?

时间:2009-04-09 08:47:22

标签: ms-access vba ms-office

MS访问数据库不允许在SQL查询中将字段与“memo”数据类型进行比较。有没有办法在VBA中做到这一点?

如果备忘录的大小> 255个字符

,则简单比较不起作用

3 个答案:

答案 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个文件中,然后与文件进行比较。