2016-12-09 11 views
0

これはうまくいくはずですが、なぜそうでないのか分かりません。私は答えを見つけるまで、またはそれを私につながる何かを見つけるまで、通常、この事をやって作業、または精練フォーラムで非常に良い。Access 2010 VBAでSQLステートメントを作成し、フォームからフィールド値に基づいて複数値フィールドの内容を取得します

Private Sub Command94_Click() 

'Set SQL Statement 
Dim strSQL As String 
Dim strSQL1 As String 

    strSQL = [Forms]![frmYMAD_Coordinator]![YMAD_Number] 
    strSQL1 = "SELECT YMAD_Category.value " & _ 
      "FROM tblYMAD " & _ 
      "WHERE YMAD_Number = '" & strSQL & "' ;" 

MsgBox (strSQL1) 
End Sub 

しかし、これは私が私のメッセージボックステストで取得していますものです:

SELECT YMAD_Category [値] YMAD_Number = '25' tblYMAD FROM;。。

今、フィールドYMAD_Categoryは複数値フィールドで、YMAD_NumbertblYMADフィールドであるともfrmYMAD_Coordinator上のフィールドの名前。

私は明らかに何かが不足していますが、それが何であるかはわかりません。クエリデザインビューでSQLを書くAccessで作業するクエリを取得できますが、VBAではなく、複数値フィールドから結果を取り出すことができます。

何か助けていただければ幸いです。

+0

あなたがあなたのコードに基づいて得るべきものです。 'YMAD_Number'はテキストフィールドか数字フィールドですか?それが数値の場合、あなたの問題は一重引用符の使用です。 – SunKnight0

+0

'YMAD_Number'は数値フィールド(_Autonumber_)です。一重引用符を削除して何が起こるかを見てみましょう。 – ackdaddy

+0

'@ SunKnight0'は動作しません。メッセージボックスが表示されます。 SELECT YMAD_Category.value FROM tblYMAD WHERE YMAD_Number = 25; – ackdaddy

答えて

0

方法のほかに

strSQL1 = "SELECT " & YMAD_Category.value & _ 
     " FROM tblYMAD " & _ 
     "WHERE YMAD_Number = '" & strSQL & "' ;" 

について、あなたは YMAD_Numberは文字列として保存された番号であることを確信していますか? 数値の場合は、 WHERE YMAD_Number = " & strSQL & ";"をフィルタリングし、その値の前後に一重引用符 'を含めることができます。

+0

'YMAD_Category'はフォームフィールドではなく、複数値フィールドです。 – SunKnight0

関連する問題