各レコードにUIDを使用するAccessアプリケーションがありますが、SQLのレコード順序と一致しません。 (すなわち、12845の私のUIDは、Accessのレコード番号12834に対応しています)アクセス - レコード内の文字列を見つけて、そのレコードに移動します
私はAccess DBを検索し、一致するUIDを見つけるレコードをプルするために作成した検索ボックスを持っていますが、私がコードを書いたやり方は、UIDと一致するレコード番号に行くということです(UID 12845を使用してレコード12834の代わりにレコード番号12845に移動します)。
私は数日間座っていましたが、周りに道を見つけることができません。インターネットを検索しても役に立つとは言えません。もし誰かが文字列にマッチして、そのレコードにどうやってレコード情報をパースしようとしているのかを知っていれば、それは素晴らしいでしょう。
以下は、使用しているコードの例です。これは、日付文字列を受け取り、レコード内の文字列を探し、UIDを取得し、その後、後藤に対応するレコードをしようとします:
Private Sub FindBarCodeDate_Click()
Dim Barcode As String
Dim EndDate As String
If IsNull(BarcodeSearch.Value) Then
If IsNull(DateSearch.Value) Then
GoTo Done
Else
EndDate = DateSearch.Value
End If
Else
If IsNull(DateSearch.Value) Then
Barcode = BarcodeSearch.Value
Else
Barcode = BarcodeSearch.Value
EndDate = DateSearch.Value
End If
End If
Dim rs As New ADODB.Recordset
Dim strSql As String
Dim TSD As String
If Barcode <> "" Then
If EndDate <> "" Then
strSql = "SELECT [TSD ID] FROM dbo_barAdultCollectionData WHERE Barcode = '" & Barcode & "' AND [End Date] = '" & EndDate & "'"
On Error GoTo Done
rs.Open strSql, CurrentProject.Connection
TSD = rs.Fields.Item(0)
rs.Close
DoCmd.FindRecord TSD, acEntire, False, acSearchAll, False, acAll, True
Set rs = Nothing
Else
strSql = "SELECT [TSD ID] FROM dbo_barAdultCollectionData WHERE Barcode = '" & Barcode & "'"
On Error GoTo Done
rs.Open strSql, CurrentProject.Connection
TSD = rs.Fields.Item(0)
rs.Close
DoCmd.FindRecord FindWhat:=TSD, Match:=acEntire, MatchCase:=False, Search:=acSearchAll, SearchAsFormatted:=False, OnlyCurrentField:=acAll, FindFirst:=True
Set rs = Nothing
End If
ElseIf Barcode = "" Then
If EndDate <> "" Then
strSql = "SELECT [TSD ID] FROM dbo_barAdultCollectionData WHERE [End Date] = '" & EndDate & "'"
On Error GoTo Done
rs.Open strSql, CurrentProject.Connection
TSD = rs.Fields.Item(0)
rs.Close
DoCmd.FindRecord FindWhat:=TSD, Match:=acEntire, MatchCase:=False, Search:=acSearchAll, SearchAsFormatted:=False, OnlyCurrentField:=acAll, FindFirst:=True
Set rs = Nothing
End If
Else
Done:
SearchError.Caption = "Invalid Search Term!"
End If
End Sub
ありがとう!
ラベルにジャンプすることによってのみ到達できるelseブロック。私はこれまでにそれを見たことがあるか分からない。それが賢明であると想像することはできません。 –
したがって、IDが実際には同じでない場合は、SQLテーブルでIDを見つけて、そのIDをAccessテーブルで検索しています。私はあなたがSQL IDからAccess IDへの変換をどのように期待しているのか混乱しています。バックアップしましょう。英語で、テーブルを手動で調べると、どのAccessレコードが特定のSQLレコードにどのようになっているのか、どのようにわかりますか? –