2016-12-23 10 views
1

私は今朝Accessプログラミングを開始し、私が解決していないような私の最初の大きな問題を見つけました。私はかなりの方法(DAO.Recordsetなど)を試みましたが、うまくいきません。アクセスとVBA + SQL

Combofieldで選択されている内容に応じて、関連情報のみを表示するリストが必要です。

詳細詳細:特定のStoragebinを検索し、リストフィールドにリストされているこの上に保管されたマテリアルを取得することができます。これがうまくいくためには、上記の検索フィールドでStoragebinを変更するたびにListfieldのレコードセットを変更する必要があると思った。

コード:事前に

Dim findMatSQL As String 

findMatSQL = "SELECT Material " & _ 
      "FROM [tbl_Storagebins] " & _ 
      "WHERE [tbl_Storagebins].ID = '" & Kombinationsfeld22 & "'" 

Me!Liste60.RowSource = findMatSQL 

どうもありがとう!

答えて

0

これを試してみてください:

Dim findMatSQL As String 

findMatSQL = "SELECT Material FROM [tbl_Storagebins] " _ 
& "WHERE [tbl_Storagebins].ID = " & Me.Kombinationsfeld22 

Me!Liste60.RowSource = findMatSQL 
Me.Liste60.Requery 
+0

ありがとうございます。 ( – Aseroth

0

は、あなたの実際のフォーム名に[yourformnamehere]を設定することを忘れないでください、このSQLコード

SELECT Material FROM [tbl_Storagebins] WHERE [tbl_Storagebins].ID = Forms![yourformnamehere]![Kombinationsfeld22] 

を使用してクエリを作成します。 次に、liste60の行ソースを作成したクエリに設定します。私は自分自身を失敗した

Private Sub Kombinationsfeld22_AfterUpdate() 
Me.Liste60.Requery 
End Sub 
+0

あなたの助けてくれてありがとう!私は仕事に戻ってすぐにこれを試してみるつもりです本当にこれがうまくいくことを願っていますHaventはこのようにすることを考えました – Aseroth

+0

私はあなたが私に示した方法を試しましたが、 = queryExists(tempQuery)もし文字列 として暗いquerySQL DAO.QueryDef として空と多分私が何かをしないのです理由。私は知らない... HERESに私のコード今のところ。 – Aseroth

+0

'ます。Private Sub Kombinationsfeld22_AfterUpdate() 薄暗いtempQuery True Then CurrentDb。 QueryDefs.Delete "tempUmlagerQuery" querySQL =&_ "WHERE [tbl_Storagebins] .ID =" &フォーム "[tbl_storagebins]の" を "材料を選択" &_!Umlagern!Kombinationsfeld22& "" 設定した場合は終了しますtempQuery = CurrentDb.CreateQueryDef _ ( "tempUmlagerQuery"、querySQL) Form_Umlagern.Liste60.RowSource = "tempUmlagerQueryから材料を選択" Form_Umlagern.Liste60.Requery Me.Repaint エンドSub' – Aseroth

0

:Kombinationsfeld22 ためafterupdateイベントで はそれを設定しました!おかげさまで、皆さんのご協力ありがとうございます。フォールトは決してコードではありませんでした。私のリストに2つの列を設定しましたが、実際には1つしか存在しませんでした。