• ベストアンサー

MySQLへの接続

データベースMySQL4に エクセルのデータをVB6.0を利用して 格納したいのですが、 どうしたらいいかわかりません。 まず、MySQLに接続するには どうしたらいいのですか?

質問者が選んだベストアンサー

  • ベストアンサー
  • fortranxp
  • ベストアンサー率26% (181/684)
回答No.2

一例を示します。 実行途中にインプットボックスがでますので20~40位 の数値を入れてください。 Private Sub Command1_Click() '------エクセル設定----- Dim Apl As Variant 'エクセルアプリケーションの定義 Dim Book As Variant 'ブックの定義 Dim Sheet As Variant 'シートの定義 Dim k As Integer '各セルの値を取得 Dim Fpath As String Dim i As Long Dim j As Long '------エクセルファイルを開く&表示------- Fpath = App.Path & "\Sample1.xls" Set Apl = CreateObject("Excel.Application") Apl.Application.Visible = True Set Book = Apl.Workbooks.Open(Fpath) 'エクセルファイルのopen Set Sheet = Book.Worksheets(1) '------MySQL 設定----- Dim cn As Variant Dim sql As String '** MySQL ODBC 接続 On Error Resume Next Set cn = CreateObject("ADODB.Connection") cn.Open "dsn=MySQL;uid=sunohara;pwd=2510" cn.CursorLocation = 3 '** テーブル作成 k = InputBox("1つ当たりのデータの長さを入力してください。") sql = "create table test3 (" For j = 1 To 255 If Sheet.Cells(1, j + 1).Value = "" Then Exit For sql = sql & "a" & CStr(j) & " char(" & k & ")," Next sql = sql & "a" & CStr(j) & " char(" & k & ")" sql = sql & ")" cn.Execute sql sql = "" '** インサート For i = 1 To 65536 If Sheet.Cells(i, 1).Value = "" Then Exit For sql = "insert into test3 values (" For j = 1 To 255 If Sheet.Cells(i, j + 1).Value = "" Then Exit For sql = sql & "'" & CStr(Sheet.Cells(i, j).Value) & "'" & "," Next sql = sql & "'" & CStr(Sheet.Cells(i, j).Value) & "'" sql = sql & ")" cn.Execute sql Next '** レコードセットクローズ Apl.Application.Visible = False cn.Close Apl = Nothing Book = Nothing Sheet = Nothing '----- MsgBox "終了" End Sub

参考URL:
http://homepage2.nifty.com/sak/w_sak3/doc/sysbrd/vb_t19.htm
jpgif
質問者

お礼

大変遅くなりすいませんでした。 このプログラムを大変参考にさしていただきました。 ありがとうございました。

その他の回答 (1)

  • dee_honda
  • ベストアンサー率53% (26/49)
回答No.1

http://homepage2.nifty.com/sak/w_sak3/doc/sysbrd/mysql_02.htm 等を参考にしてみてください。 VB6.0でなくてもExcelのVBAからでも可能です。

jpgif
質問者

お礼

大変遅くなりましてすいません。 ありがとうございます。 これからそのURLで勉強していきます。