我一直在使用MS Access 2013的項目工作了很長時間。我遇到的一個問題是我在表格i中有很長的「評論」需要分解並插入新表格。每條評論都鏈接到一個「RouteID」,它們之間的關係可以是多對多的。我遇到的主要問題是表格中有重複的註釋,我正在移動數據FROM。沒有必要保留重複的「評論」,唯一的區別在於「RouteID」。基本上我有一個老評論表和一個新評論表。VB6/SQL「長文本」沒有正確比較(MS Access 2013)
我的問題是它沒有正確地檢查我的OLD表中的評論是否在NEW表中並且正在創建重複項。
一些評論被發現是重複的,其他人不是,並且被發現不是重複的評論的大小根據大小和符號從短到長而變化。
這是我編寫的一些代碼,我嘗試過多個版本的SQL和VBA/VB6代碼,但結果仍然相同,重複的註釋顯示在我的新表中。請隨時批評這一點,無論它是否與我的問題有關。
我知道有些查詢可能會太長時間無法正常工作,所以我做了一個SQL查詢來比較TABLE'S,但同樣失敗並且重複的註釋依然存在。我檢查了我的代碼,我不相信我在做錯誤的邏輯
請幫忙!似乎沒有人知道我在朋友/教授的圈子裏做什麼。我有一個主意,採取了意見和哈希他們,把它們放在一個類似的表,並用它來檢查
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
我試圖與通過記錄迴路一個布爾函數來工作,但的比戈鑑於每個表中記錄的大小,循環將在一段合理的時間內完成。
請僅發佈相對代碼並縮小與您的代碼的實際問題 – 2014-01-23 16:18:07
您是說代碼無法識別真正重複但不是精確字符串匹配的註釋(例如,由於尾隨空格或嵌入換行符,或類似的),還是比這個問題更微妙? –
我削減了一些代碼,主要檢查是在底部。評論的SQL代碼是我嘗試過的東西,但無法完成,因爲兩個表之間的內部連接導致了錯誤,因爲兩個表之間存在不同的類型(來自我所讀的內容),但它們都是相同的。至於重複例如,多次插入到新表中的是「[Forest Service comment]」,我沒有看到任何額外/尾隨的WS或換行符。 – JaredTS486