• 締切済み

ExcelVBAでSQLServerに追加するには。

教えてください! ExcelVBAの[intNo]と[strNamse]を ADOでSQLServerにレコード追加するにはどうしたらいいのですか? [ExcelVBA] Dim intNo as Integer = Range("A2")の値 Dim strName as String = Range("B2")の値 [SQLServer] Data Source= NetworkPC1 Initial Catalog= DataBase1 ID=aa Password=123456 テーブル= Syain 列1= No 列2= Name

みんなの回答

noname#26224
noname#26224
回答No.1

まず、参照設定をしてください  'Microsoft ActiveX Data Object x.x Library'の追加 で、以下のコーディングでどうでしょう。  Dim cnn As New ADODB.Connection  cnn.Open "Provider=SQLOLEDB;Data Source=NetworkPC1;Initial Catalog=DataBase1;", "aa", "123456"  cnn.Execute("INSERT Syain ([No], [Name]) VALUES (1,'HammerHead')") 動かしてないので文法エラーがあるかも。

関連するQ&A

  • EXCELVBAでSQLserverからデータをひっぱってきてエクセルに表示させたい

    EXCELVBAでSQLserverからデータをひっぱってきてエクセルにクエリの結果を表示させています。 クエリのコードが短い場合は問題ないのですが、 長くなると、時間切れのメッセージが出てうまくできません。 クエリ自体は長いですが、誤りはありません。 クエリが複雑すぎたり長すぎたりするとだめなのでしょうか。 ご教授ください。宜しくお願い致します。 *************エラーメッセージ*************** 実行時エラー'2147217871(80040e31)': 時間切れになりました。 ******************************************** Sub test() Const connstr = "Provider=sqloledb;" & _ "Data Source=サーバ名;Initial Catalog=DB名;UserId=ユーザ名;Password=パスワード; " Dim conn As New ADODB.Connection Dim rs As New ADODB.Recordset Dim strSQL As String strSQL = "SELECT …ここのクエリ文が長い…" conn.Open connstr rs.Open strSQL, conn Range("A2").CopyFromRecordset rs rs.Close conn.Close End Sub

  • SQLServer2000で登録情報を知りたいです。

    VB.NETとSQLServer2000でWebアプリをつくろうと思っています。 VB.NETとSQLServer2000の接続がよくわからないので教えてください。 ある書籍でVB.NETとSQLServer2000の接続文字列は下記のとおりだと書いてありました。 '接続文字列を作成して接続を開始する sqlCn.ConnectionString = "data source=Server;" "initial catalog=DB201;" "user id=db201;" "password=db201;" "persist security info=True;" sqlCn.Open() ここでの「data source」「initial catalog」「user id」「password」などの情報をインストール済みのSQLServerで調べたいのですが、どのようにするのでしょうか? 「data source」がもしサーバー名であれは、サービスマネジャーで実行されているサーバー名でよいのでしょうか? どうか教えてください。

  • エクセルからSQLServerのデータを操作したいのですが

    エクセルからSQLServerのデータを操作したいのですが 下記コードをエクセルに入力して実行すると conn.Open connstrの部分にて 実行時エラー"-2147217887(80040e21)' 複数ステップの OLE DB の操作エラーが発生しました。各OLE DBの状態の値を確認してください。 作業は終了しませんでした。 とでてしまいます。 どのようにしたらいいのでしょうか? 教えてください。 Const connstr ="Data Source=●●●\SWLEXPRESS;Initial Catalog = DBweb;Integrated Security=True" は Web.configで接続されている <add name ="webConnectionString" connectionString="Data Source=●●●\SWLEXPRESS;Initial Catalog = DBweb;Integrated Security=True"_ providerName = "System.Data SqlClient"/>からproviderNameを抜かしてとったのですがいいのでしょうか? ------------------------------------------- Sub SQL() Const connstr ="Data Source=●●●\SWLEXPRESS;Initial Catalog = DBweb;Integrated Security=True" Dim conn As New ADODB.Connection Dim rs As New ADODB.Recordset Dim strSQL As String strSQL = "SELECT * FROM DBtable" conn.Open connstr rs.Open strSQL, conn Range("A2").CopyFromRecordset rs rs.Close conn.Close Set rs = Nothing Set conn = Nothing End Sub

  • ExcelVBAからAccessにアクセスする

    ExcelVBAからパスワード付きAccessにアクセスする ExcelVBAからADOでAccessに次のようにしてアクセスしています。 Dim Cnn As ADODB.Connection Set Cnn = New ADODB.Connection Cnn.ConnectionString = \"Provider=Microsoft.Jet.OLEDB.4.0;\" _ & \"Data Source=\" & mdbのフルパス Cnn.Open パスワード付きのmdbにアクセスするのはどのようにしたらよろしいでしょうか?

  • Excel2013 ExcelVBAで散布図

    Excel2013 ExcelVBAで散布図を書く方法を教えてください。 Excel2013にてA列とC列で散布図を作成するため excelVBAで以下のコードを書いています。 Sub hogehoge() Dim aa As Range Dim cc As Range Dim aacc As Range Set aa = Range(Cells(1, 1), Cells(6, 1)) Set cc = Range(Cells(1, 3), Cells(6, 3)) Set aacc = Union(aa, cc) aacc.Select ActiveSheet.Shapes.AddChart.Select ActiveChart.ChartType = xlXYScatterLinesNoMarkers End Sub 上記を実行すると左側のグラフになってしまうのですが 右側のグラフを書きたいんですがどうしたらいいのでしょうか? よろしくお願いします。

  • ADOオブジェクトの接続文字列について

    Visual BasicでADOオブジェクトを使用してDBに接続しようとしています。 Connectionオブジェクトの接続文字列 Provider=SQLOLEDB.1; Persist Security Info=False; Data Source=***; User ID=***; Password=***; Initial Catalog=***; Connect Timeout=120; とあるのですが、Persist Security Info=Falseというのは何を表しているのでしょうか? 調べてみるとトランザクション処理と関係がありそうなのですが、関係があるのでしょうか? 今までProvider、Password=、User ID、DataSource、Initial Catalogしか接続文字列に設定したことがないため、この他に接続文字列に何が設定できるのかわかりません。もしよろしければ、この他の設定項目についても教えてください。

  • ExcelVBAでのNZ関数について

    いつもお世話になっております。 早速ですが、ExcelVBAでNZ関数を使いたいのですが、 「実行時エラー'429' ActiveXコンポーネントはオブジェクトを作成できません。」 とエラーが出て、うまくいきません。 実現したい結果は、テキストボックスに入力された値に対して Nullチェックし、Nullの場合、変数に"名無し"と入力するとった 処理です。 ロジックは以下のように書きました。 Dim strName As String strName = Nz(txtName.text,"名無し") 環境は以下の通りです。 ・Windows Vista Home Premium ・Excel2007 よろしくお願いします。

  • SQLServerへの接続子による違いについて

    VB2005 Express SQLServer2003で開発している初心者です。 ループをし、その中でDBへの登録を行いたいと思い、下記のようにコーディング しましたところ、2回目で下記のエラーになりました。 このカーソルの種類を使用している場合は、トランザクションに複数の Recordset を含むことはできません。カーソルの種類を変更する、トランザクションをコミットする、または Recordset のいずれかを閉じてください。 自分なりに調べて、接続文字列を変数Bにしたところ、エラーが発生しなくなりました。 どうして変数Aだとエラーで、変数Bだとエラーにならないのでしょうか。 すみませんが、どなたかご教授下さい。宜しくお願いします。 変数A="DRIVER=SQL Server;UID=aaa;DATABASE=ccc;Password=bbb;SERVER=ddd" 変数B="Provider=SQLOLEDB.1;Password=bbb;Persist Security Info=True;User ID=aaa;Initial Catalog=ccc;Data Source=ddd" Dim cn As New ADODB.Connection cn.Open(変数A) cn.BeginTrans() For intCnt = 0 To intRow - 1  SQL文作成  cn.Execute(作成したSQL文) Next cn.CommitTrans()

  • SQLServerデータをDataGridに表示時にエラーが発生

    SQLServerデータをDataGridに表示時にエラーが発生 visual Studio2008を使用し、SQLServerから条件を指定しそれをDataGridに一覧表示するvbを組んでいますが、エラーが解消しなく困っております。対応方法について教えてください。 【状況】 1 Dim St As String 2 Dim Cn As New System.Data.SqlClient.SqlConnection 3 Dim SQL As System.Data.SqlClient.SqlCommand 4 Dim ServerName As String = "Server名"  5 Dim UserID As String = "id" 6 Dim Password As String = "×××" 7 Dim DatabaseName As String = "Dbname" 8 Dim Adapter As New SqlClient.SqlDataAdapter(SQL, Cn) 9 Dim table As New DataTable 10 St = "Server=" & ServerName & ";" 11 St &= "User ID=" & UserID & ";" 12 St &= "Password=" & Password & ";" 13 St &= "Initial Catalog=" & DatabaseName 14 Cn.Open() 15 Cn.ConnectionString = St 16 SQL = Cn.CreateCommand 17 SQL.CommandText = ("SELECT * FROM CUSTOMER_M WHERE CUSTOMER_NAME LIKE " & "'%' & TextBoxName.Text & '%'") 18 Adapter.Fill(table) 19 DataGrid1.DataSource = table 20 Cn.Close() 21 SQL.Dispose() 22 Cn.Dispose() 8行目の「Adapter」がエラーになり、オーバーロードの解決に失敗しましたとメッセージが出ています。8行目の(SQl、Cn)を省くとコンパイルエラーはなくなりますが、14行目でエラーになります。 宜しくお願いします。

  • SQLServer Expressに別PCから

    こんにちは。 一つ教えてください。 自分のパソコンにSQLServer2012 ExpressとVisual Studio2017 Community(VB)を インストールし、DataGridViewを使った簡単な照会のプログラムを作成しました。 SQLServer2012の認証はWindows認証になっています。 このVBのプログラムをもう1台別のパソコンからも動かしたいのですが Connectionは "Data Source = 100-PC\SQLEXPRESS" & ";Initial Catalog = KEIDB" & ";Integrated Security = SSPI" & ";Connection Timeout=30;" とローカルの"Data Source = 100-PC\SQLEXPRESS"とコーディングしてありますが 別のパソコンでも実行させるにはどうするとよいでしょうか? このままでも動くのでしょうか? ちなみに、IPアドレスは固定ではありません。 わかる方おられましたら教えていただけないでしょうか。 どうぞよろしくお願いします。