OLACLE,SQLSERVER,ACCESS,EXCEL,CSVなどと接続するための方法 1、SQL実行_Click : 指定されたSQLを実行しレコードセットを得る 2、OLEDB接続文字 : 各種データへの接続文字列を作成する '********************************** ' SQL実行 処理 '********************************** Private Sub SQL実行_Click() 'SQL実行 Dim con As New ADODB.Connection Dim connectionString As String Dim rs As New ADODB.Recordset Dim SQL As String 'SQL抽出 '選択されていればその部分、 'そうでなければテキストボックス全てを対象 If TextBox3.SelLength <> 0 Then SQL = TextBox3.SelText Else SQL = Me.TextBox3 End If 'SQLチェック SELECT文のみ受け付ける If Left(StrConv(SQL, 1), 6) <> "SELECT" Then MsgBox "SELECT 以外受け付けません。" Exit Sub End If '接続文字列を得る If Gl_システム = "" Then MsgBox ("接続先を選択して下さい。") Exit Sub End If connectionString = OLEDB接続文字 On Error GoTo Err_DBConnectOpen '接続 con.Open connectionString 'レコードセットの取得 Set rs = con.Execute(SQL) '*********************************************** 'レコードセットの内容をワークシートに出力する ' CopyFromRecordset(Data, MaxRows, MaxColumns) '*********************************************** : <省略> : rs.Close Set rs = Nothing Exit Sub 'エラー処理 Err_DBConnectOpen: MsgBox "SQL実行出来ません" & vbCrLf & Err.Description 'Connectionの状態を確認し、クローズ If con.State <> ADODB.adStateClosed Then con.Close End If Set con = Nothing End Sub '********************************** ' OLEDB接続文字を得る '********************************** Function OLEDB接続文字() 'OLEDB接続文字を作成する Dim Connect_name As String Dim W_HDR As String Connect_name = "" W_HDR = "NO" If (Gl_システム = "ORACLE") Then 'ORACLE:OLE DB プロバイダ(ORACLE製) Connect_name = "Provider=OraOLEDB.Oracle;" & _ "Data Source=" & Gl_サーバ名 & ";" & _ "User Id=" & Gl_ユーザID & ";" & _ "Password=" & Gl_パスワード ElseIf (Gl_システム = "MS_ORA") Then 'ORACLE:OLE DB プロバイダ(Microsoft製) Connect_name = "Provider=MSDAORA;" & _ "Data Source=" & Gl_サーバ名 & ";" & _ "User Id=" & Gl_ユーザID & ";" & _ "Password=" & Gl_パスワード ElseIf (Gl_システム = "MSSQL") Then 'Microsft SQL Server:OLE DBプロバイダ Connect_name = "Provider=SQLOLEDB;" & _ "Data Source=" & Gl_サーバ名 & ";" & _ "User Id=" & Gl_ユーザID & ";" & _ "Password=" & Gl_パスワード & ";" & _ "Initial Catalog=" & Gl_データベース名 ElseIf (Gl_システム = "ACCESS") Then 'Access(MDBファイル):OLE DBプロバイダ Connect_name = "Provider=Microsoft.Jet.OLEDB.4.0;" & _ "Data Source='" & Gl_データベース名 & "';" & _ "User Id=" & Gl_ユーザID & ";" & _ "Password=" & Gl_パスワード ElseIf (Gl_システム = "CSV") Then 'CSVファイル ラベルがあれば、HDR = YES If Gl_ラベル = True Then W_HDR = "YES" Connect_name = "Provider=Microsoft.Jet.OLEDB.4.0;" & _ "Data Source='" & Gl_データベース名 & "';" & _ "Extended Properties='Text;HDR=" & W_HDR & ";FMT=Delimited'" ElseIf (Gl_システム = "EXCEL") Then 'Excel (ブックファイル): OLE DBプロバイダ '「シート名+$」がテーブル名になります。 If Gl_ラベル = True Then W_HDR = "YES" Connect_name = "Provider=Microsoft.Jet.OLEDB.4.0;" & _ "Data Source='" & Gl_データベース名 & "';" & _ "Extended Properties='Excel 8.0;HDR=" & W_HDR & ";IMEX=1'" ElseIf (Gl_システム = "ORA_INST" Or Gl_システム = "ODBC_ORA") Then 'ORACLE:ODCB Oracle in instantclient Connect_name = "Driver={" & Gl_ドライバ名 & "};" & _ "DBQ=" & Gl_サーバ名 & ";" & _ "UID=" & Gl_ユーザID & ";" & _ "PWD=" & Gl_パスワード ElseIf InStr(Gl_システム, "ODBC") > 0 Then 'ODCB Connect_name = "Driver={" & Gl_ドライバ名 & "};" & _ "Server=" & Gl_サーバ名 & ";" & _ "UID=" & Gl_ユーザID & ";" & _ "PWD=" & Gl_パスワード ElseIf InStr(Gl_システム, "DSN") > 0 Then 'ODBCデータソース Connect_name = "DSN=" & Gl_サーバ名 & ";" & _ "UID=" & Gl_ユーザID & ";" & _ "PWD=" & Gl_パスワード Else MsgBox ("※対象システムなし!! " & Gl_システム) End If OLEDB接続文字 = Connect_name End Function
最新の画像[もっと見る]
※コメント投稿者のブログIDはブログ作成者のみに通知されます