こんにちは仲間のプログラマー、私は(おそらく)単純な問題を解決する方法を理解できないので、絶対に必死です。私は2つのテーブルを持っています。[FName](ファイル名) と [FPath](ファイル パス) の 2 つのフィールドを持つ最初の [Files] と [DocNo] [Title] を持つ 2 つ目の [Reports]...何とか何とか...
FName 文字列は [DocNo] [Title] で構成されます (ただし、タイトル文字列全体はファイル パスではありません)
例: [DocNo] Smith/RT/2000/001
[タイトル] BHP Iron Ore Pty Ltd の 68kg/m 頭硬化レールにおける改良アルミノ熱溶接の評価
[FName] SmithRT2000001 改良アルミノサーミック溶接の評価 .pdf
検索リストを含むフォームがあります。このリストは、[レポート] にあるレコードを表示します。特定のレコードをダブルクリックすると、doubleclick イベントが発生します。イベントでは、DocNo と Title の値を取得し、一致する Fname を Files テーブルで検索します。しかし、驚くべきことに、SQL検索を行ったり、クエリのデザインモードを使用したりしても、何も返されませんか?
しかし、面白いことに、レコードを見つけるためにハードコーディングすると、どちらの方法でもレコードが見つかります。それはどうですか?
チェックアウトするVBAは次のとおりです。
Private Sub SearchResults_DblClick(整数としてキャンセル)
'Initializing the string variables
Dim strSQL As String
Dim strFileName As String
Dim strTitle As String
Dim DocumentNo As String
Dim titleLeng As Integer
DocumentNo = Me.SearchResults.Column(0)
DocumentNo = Replace(DocumentNo, "/", "")
strTitle = Me.SearchResults.Column(1)
Debug.Print (DocumentNo)
SrchText = DocumentNo
SearchResults.RowSourceType = "Table/Query"
SearchResults.RowSource = "QRY_OpenFile"
Debug.Print (strTitle)
strTitle = Left(strTitle, 10)
SrchText = strTitle
Debug.Print (SrchText)
SearchResults.RowSource = "QRY_OpenFile"
Dim rst As Recordset
Dim db As DAO.Database
Set db = CurrentDb()
strSQL = "SELECT Files.FName FROM Files WHERE Files.FName Like " * " & strTitle & " * ";"
Debug.Print (strSQL)
Set rst = db.OpenRecordset(strSQL, dbOpenDynaset)
Application.FollowHyperlink strFileName, , True, False, , , "John Smith"
SQL 文字列のすべてのバリエーションを試しましたが、外側の " " を ' ' に変更しても機能しません。しかし、strTitle を "Assessment" 文字列または "SmithRT2000001" に変更すると、それが見つかります。なぜだか分からない?
これは、「* & Forms![レポートの検索]![SrchText] & *」のように条件を設定するクエリ デザイン ウィンドウでは機能しませんが、静的なものを変更するとすぐに機能します。発狂!!
何をすべきか、またはFILEテーブルでファイルを開くという私の目標を達成する方法を教えてもらえますか??