2017-10-19 21 views
0

この方法で入力ボックスを使って複数のフィールドをどのように表示することができますか?Excel VBAユーザーフォームを使用してSQL Server 2014にマルチプレットフィールドを挿入しますか?

名前、高さ、性別、給与を人の1つのユーザーフォームを使用して挿入できるようにしたいと考えていますか?これまでは、以下のコードのように一度に1つのフィールドを挿入する方法しか知りませんでした。

Dim SQL as ADODB.Command 
Set SQL = NEW ADODB.Command 
SQL.CommandText = "INSERT INTO [myStuff].[dbo].[myThings](Salary) VALUES (?)" 
SQL.Parameters.Append SQL.CreateParameter("Name",adNumeric,adParamInput,"Length of input here", MyInputBox.Value) ' Perhaps you have to validate MyInputBox.Value 
SQL.ActiveConnection = CN 
SQL.Execute 
+0

: 'Cn.Execute "(&MyInputBox.Value& ")" –

+2

@VictorK [必須](。。INSERT [のMyStuff] [DBO] [myThings(給与)値に" –

+1

@VictorK:**新しいプログラマーにSQLの文字列連結を教えてください**このような方法はSQLインジェクションの脆弱性を引き起こします。適切なコメントや答えを書くのに気を使うことができない場合は、悪い情報を提供するよりも何も書かない方がよいでしょう。 –

答えて

3

ここではSQL文字列連結の人々を怒らせません。ここではパラメータ化されたバージョンです(下記参照)。書き込みに適した接続を開いて、InputBox.Valueの入力を検証する必要があることに注意してください。最も単純な形態では

Dim SQL as ADODB.Command 
Set SQL = NEW ADODB.Command 
    SQL.CommandText = "INSERT INTO [myStuff].[dbo].[myThings](Salary) VALUES (?)" 
    SQL.Parameters.Append SQL.CreateParameter("Name",adNumeric,adParamInput,"Length of input here", MyInputBox.Value) ' Perhaps you have to validate MyInputBox.Value 
    SQL.ActiveConnection = CN 
    SQL.Execute 
+0

ありがとう1)コメントを交換するための回答を投稿し、2)その回答を編集して何かの説明を追加してくれてありがとう。 (upvoted) –

関連する問題