0

リストボックスを使用しています。行をクリックすると、シートのフィールドに入力されます。したがって、作業チケット18をクリックすると、テーブルから部門、優先度、担当者などが取得され、作業指示が満たされます。行をクリックすると、次のように入力するだけで、チケット番号が記載されたメッセージボックスがポップアップ表示されます。

MsgBox Me.Work_Order_List.Value

それから私が試みるとき

ticNum = Me.Work_Order_List.Value
strSQL = "SELECT Description_Of_Problem FROM Work_Orders WHERE " & ticNum & " = Ticket_Number;"
Debug.Print strSQL
Me.Notes = strSQL

メモボックスはSQLステートメントを出力しますが、実行されません。私はここで何が間違っているのですか?多くのフィールドに入力する必要があるので、より高速な方法もありますか?

ありがとう

4

3 に答える 3

1
Me.Notes = DLookup("Description_Of_Problem", "Work_Orders", "Ticket_Number=" & ticNum)

それがまさに私が探していたものでした。残りのコードを削除して、各フィールドに使用することができました。ありがとうハンズアップ!

于 2013-02-08T22:54:03.463 に答える
0

クエリを実行していません。データをフィールドに入力する場合は、フォームのレコードソースを sql に設定する必要があります。

 Me.RecordSource = "SELECT Description_Of_Problem, Other, Etc FROM Work_Orders"

上記は、コントロールがフィールドにバインドされている場合にのみ機能しますが、多くのコントロールを設定する最も簡単な方法です。

開始する最良の方法は、フォーム ウィザードを使用して Work_Orders に基づくフォームを作成することです。コンボボックスを作成してフォーム上のレコードを選択することで、コーディングをまったく回避できます。その後、ユーザーはチケットを選択してそのレコードにジャンプできます。そのためのウィザードもあります。


Dim rs As DAO.Recordset

ticNum = Me.Work_Order_List.Value
strSQL = "SELECT Description_Of_Problem FROM Work_Orders WHERE Ticket_Number =" _
       & ticNum 
Debug.Print strSQL
Set rs = CurrentDB.OpenRecordset strSQL
Me.Notes = rs!Description_Of_Problem

フォームのバインド

テーブルまたはクエリに基づいてフォーム ウィザードを開始する

フォーム ウィザード

手順に従って、デザイン ビューでフォームを完成させます

デザイン ビューのフォーム

レコードをナビゲートする方法はいくつかありますが、リストボックスが気に入っているようです。ウィザードが選択されていることを確認して、リスト ボックスを追加します。

リストボックスを選択

現在のフォームのレコードを検索することを選択します

フォームのレコードを検索

リストボックスに表示するアイテムを選択します

リストボックスの項目を選択

項目を選択して、フォーム上で検索します。

アイテムを選択してレコードを検索

これがバインドされたフォーム、テーブル名、クエリ名、または SQL ステートメントのレコード ソースになります。自動的に入力されるコントロールはフィールド名にバインドされていますが、レコードを検索するためのリストボックスは「バインドされていない」とマークされていることに注意してください。

バインドされたフォーム

于 2013-02-08T22:21:45.773 に答える