0

アクセスのいくつかのフォーム コントロール値から SQL 挿入ステートメントを作成しようとしています。

Controls() 関数を使用してコントロールを動的に参照できることを読みました。

私はこれをやろうとしました:

   Private Sub InsertCoeff(ByVal prov As String, ByVal region As String)
    Dim strSQL As String
    Dim insertSQL As String
    Dim valuesSQL As String
    insertSQL = "INSERT INTO 'Coefficient de Fermage'"
    valuesSQL = "("
    valuesSQL = valuesSQL & "('1F','2F')"
    valuesSQL = valuesSQL & ",('" & Me.Controls(prov & region & "Lbl") & "','" & Me.Controls(prov & region & "Lbl") & "')"
    valuesSQL = valuesSQL & ",('" & Me.Controls(prov & "Lbl") & "','" & Me.Controls(prov & "Lbl") & "')"
    valuesSQL = valuesSQL & ",('" & Me.Controls(prov & region & "Terres") & "','" & Me.Controls(prov & "Bat") & "')"
    valuesSQL = valuesSQL & ",('" & Me.DateEff & "','" & Me.DateEff & "')"
    valuesSQL = valuesSQL & ")"
    strSQL = insertSQL & " VALUES " & valuesSQL
End Sub

しかし、「Me」と入力し始めると vba が Controls() メソッドを自動提案するにもかかわらず、実行時エラー 438 (オブジェクトはこのプロパティまたはメソッドをサポートしていません) が発生します。

これが失敗する理由は何ですか?

4

1 に答える 1

1

ラベルを参照していたので、正しい構文は

valuesSQL = valuesSQL & ",('" & Me.Controls(prov & region & "Lbl").Caption & "','" & Me.Controls(prov & region & "Lbl").Caption & "')"
于 2013-07-01T11:02:51.733 に答える