Sql tement没有像Access 2010中那样导致错误,但它确实将[NewTable]中的值截断为255个字符。(这是在Access中的备注字段上选择DISTINCT的一个非常常见的副作用。)如果DISTINCT不起作用,那么您可以使用ORDER BY C
Sql tement没有像Access 2010中那样导致错误,但它确实将[NewTable]中的值截断为255个字符。(这是在Access中的备注字段上选择DISTINCT的一个非常常见的副作用。)如果DISTINCT不起作用,那么您可以使用ORDER BY C,sql,vba,ms-access,vb6,ms-access-2013,Sql,Vba,Ms Access,Vb6,Ms Access 2013,tement没有像Access 2010中那样导致错误,但它确实将[NewTable]中的值截断为255个字符。(这是在Access中的备注字段上选择DISTINCT的一个非常常见的副作用。)如果DISTINCT不起作用,那么您可以使用ORDER BY Comment将它们全部选中。然后在代码中检查每个注释不=前面的注释;如果它做了一个dup并且可以忽略;如果没有,它将是一个新表并被插入到新表中。另一个选项是通过count()>1的注释从newtable组中选择comment,count(),这
tement没有像Access 2010中那样导致错误,但它确实将[NewTable]中的值截断为255个字符。(这是在Access中的备注字段上选择DISTINCT的一个非常常见的副作用。)如果DISTINCT不起作用,那么您可以使用ORDER BY Comment将它们全部选中。然后在代码中检查每个注释不=前面的注释;如果它做了一个dup并且可以忽略;如果没有,它将是一个新表并被插入到新表中。另一个选项是通过count()>1的注释从newtable组中选择comment,count(),这将只提供DUP;然后,如果有一个合理的数字,您可以手动处理它们,如果有很多,则可以使用vba。我在使用括号“运行时错误”3342时遇到一个错误:子查询“[CP1]”(这是列的名称,代表注释周期1)中的Memo、OLE或Hyperlink对象无效。我现在记住了这一点,这是我不久前尝试过的。类似于我在尝试使用内部联接SQL查询时遇到的错误。谢谢,我认为这将是最好的,我已经设置了一个哈希函数,我希望它可以毫无问题地接受注释。更不用说为注释设置的糟糕表格了。我正在使用
Replace(string,“”,“”)
为注释添加转义字符,然后再将其插入数据库。在替换转义字符之前或之后,我无法决定何时对注释进行哈希。有什么建议吗?我相信最终这并不重要…@JaredTS486您是否将单引号加倍以准备“粘合”使用单引号作为字符串分隔符的SQL语句?如果是,则当文本写入数据库时,'
s将转换回'
s。换句话说,您并没有改变注释文本,您只是调整它以使SQL语句不会中断。(不过,您也知道,将SQL语句“粘合在一起”是一个坏主意,对不对…?)对注释进行哈希处理效果很好:)谢谢您的帮助!
If Not (rsOLD.EOF And rsOLD.BOF) Then
rsOLD.MoveFirst
Do Until (rsOLD.EOF = True)
TComment = rsOLD(CommentColumn)
TResponse = rsOLD(ResponseColumn)
If Not IsNull(TComment) Then
TComment = Replace(TComment, "'", "''")
SQL = "SELECT Comment, ID FROM Comments WHERE Comment = (SELECT '" & CommentColumn & _
"' FROM CommentsOld WHERE (CommentsOld.ID = " & rsOLD!ID & "));"
'SQL = "SELECT Comment FROM Comments" & _
' " INNER JOIN CommentsOld" & _
' " ON Comments.Comment = CommentsOld." & CommentColumn & _
' " WHERE CommentsOld.ID = " & rsOLD!ID & ";"
Set rsCHECK = CurrentDb.OpenRecordset(SQL, dbOpenDynaset)
If (rsCHECK.EOF And rsCHECK.BOF) Then 'IF COMMENT DOES NOT EXIST, NOTHING FOUND
insert into NewTable (Comment)
SELECT distinct Comment
FROM OldTable;