VB2013でVB6でのDBは利用可能?

このQ&Aのポイント
  • VB4.0で作成したMicrosoft.Jet.OLEDB.4.0のDBをSQLSERVER2012で作成したDBに移行したいが、VB2013では読み込めないか?
  • データーベースエクスプローラーでは中身の確認ができるが、プログラムで走らせるとSqlDataAdapter(sql, cnStr)のところでエラーが発生する。
  • 以前のmdbファイルが読み込める方法はあるか?
回答を見る
  • ベストアンサー

VB2013でVB6でのDBは利用可能?

VB4.0で作成してましたMicrosoft.Jet.OLEDB.4.0のDBをSQLSERVER2012で作成したDBに移行したいのですが VB2013では読み込めないのでしょうか? データーベースエクスプローラーでは中身の確認はできるのですが プログラムで走らせるとSqlDataAdapter(sql, cnStr)のところでエラー下記[エラー結果]とになります Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click Dim cnStr As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=\\SERVER\DB名.mdb" Dim sql As String sql = "SELECT * FROM テーブル名" Dim dt1 As New DataTable Dim da1 As New SqlDataAdapter(sql, cnStr) Try da1.Fill(dt1) DataGridView1.DataSource = dt1 Catch ex As Exception End Try End Sub [エラー結果] 型 'System.ArgumentException' のハンドルされていない例外が System.Data.dll で発生しました 追加情報:キーワードはサポートされていません : 'provider' 以前のmdbファイルが読み込める方法はないのでしょうか?

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

  • ベストアンサー
回答No.1

System.Data.SqlClient名前空間にあるクラスはSQL Serverに対して利用するクラスです。 ref) http://msdn.microsoft.com/ja-jp/library/System.Data.SqlClient.aspx OLE DBデータソースにアクセスするには,System.Data.OleDb名前空間にあるクラスを利用します。 ref) http://msdn.microsoft.com/ja-jp/library/system.data.oledb.aspx

chiyomako
質問者

お礼

できました。 根本的に間違っていたのですね。 助かりました。ありがとうございます。

関連するQ&A

  • VB6.0とaccessのDBを接続する

    初めまして。 件名のようなことを実行する際、 以下のソースを参考にしようと思ったのですが、 ******************************************* Dim cn As New ADODB.Connection Dim rc As New ADODB.Recordset ' 接続を確立する cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _ "Data Source=C:\My Documents\db1.mdb;" ' テーブル名を指定してレコードセットを作成する rs.Open "Table1", cn, adOpenKeyset, adLockOptimistic ************************************* > cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _ > "Data Source=C:\My Documents\db1.mdb;" この部分の接続文字はどのようにしたら取得できるのでしょうか? SQLserverのときは、コンポーネントから Microsoft ADO Data Control 6.0(AP4)(OLEDB) を追加し、プロパティでOLE DBプロバイダを選択して接続文字を取得したのですが、accessに繋ぐのは初めてで、わかりません。 どなたか宜しくお願いいたします!!

  • アクセスDbのテーブル名の取得(VB2005)

    再度の質問です アクセスDBのテーブル名を取得したのですが、方法をご教示ください。DAOでは tabledefsでとれたのですが・・ 以下のコードで先に進めません。 OpenFileDialog1.Filter = "アクセス ファイル (*.mdb)|*.mdb" OpenFileDialog1.ShowDialog() If OpenFileDialog1.FileName <> "" Then Dim St As String Dim Cn As New System.Data.OleDb.OleDbConnection Dim SQL As System.Data.OleDb.OleDbCommand Dim UserID As String = "Admin" Dim Password As String = "" Dim MDBFile As String = OpenFileDialog1.FileName Dim N As String = Microsoft.VisualBasic.Right(MDBFile, 9) St = "Provider=""Microsoft.Jet.OLEDB.4.0"";" St &= "Data Source=""" & MDBFile & """;" St &= "User ID=" & UserID & ";" St &= "Jet OLEDB:Database Password=" & Password Cn.ConnectionString = St SQL = Cn.CreateCommand Cn.Open() Dim tbl As DataTable tbl = Cn.GetOleDbSchemaTable(OleDb.OleDbSchemaGuid.Tables, New Object() {Nothing, Nothing, Nothing, "TABLE"}) ここでtblを見ると TABLE_CATALOG _SCHEMA _NAME _TYPE ・・・DATE_MODIFIED などは見えるのですが、これがDB内のテーブル数だけ繰り返されます。 取得したいのは、TABLE_NAME に ある 例えば "Pub-ID"に相当する内容なのですが、HELPで探しても、その方法がわかりません、ぜひ教えてください。よろしくお願いいたします。

  • コントロール使わずdropdownlistにDB項目設定

    OleDbConnectionや、OleDbDataAdapterのコントロールを使わずに dropdownlistにDBにある列の値を設定したいとき、どうしたらいいでしょうか。 自分のコード ' 接続 Dim conn As New System.Data.OleDb.OleDbConnection( _ "Jet OLEDB:Global Partial Bulk Ops=2;Jet OLEDB:Registry Path=;Jet OLEDB:Database Locking Mode=1;Jet OLEDB:Database Password=;Data Source=""C:\Inetpub\Database\情報DB.mdb"";Password=;Jet OLEDB:Engine Type=5;Jet OLEDB:Global Bulk Transactions=1;Provider=""Microsoft.Jet.OLEDB.4.0"";Jet OLEDB:System database=;Jet OLEDB:SFP=False;Extended Properties=;Mode=Share Deny None;Jet OLEDB:New Database Password=;Jet OLEDB:Create System Database=False;Jet OLEDB:Don't Copy Locale on Compact=False;Jet OLEDB:Compact Without Replica Repair=False;User ID=Admin;Jet OLEDB:Encrypt Database=False") strTerminal = "SELECT * FROM [コード]" Dim dt1 As New System.Data.DataSet ''端末コードデータコピーする If Not IsPostBack Then adapterTerminal.Fill(dt1) ddl1.DataSource = dt1 ddl1.DataMember = "[コード]" ddl1.DataTextField = "[名称]" ddl1.DataBind() end If 実行しても、コンボボックスには空のまま>< 設定方法くわしい方教えてください。 よろしくお願いします。

  • VB2010でのSQL日付フォーマット表記変更

    VB2010Expressを使用しています。 VBにてあるCSVファイルの内容をmdbファイルに移行するプログラムを作成しています DateTimePickerの日付を条件にしているんですがCSVの日付表記が『yyyymmdd』になっていて下記のコードでは『 (Me.Date日付.Text).ToString("yyyyMMdd")』の部分で『'String' から 'System.IFormatProvider' への変換時にランタイム エラーが発生する可能性があります。』とエラーが出ます。 自宅PCでは『(Me.Date日付.Text).ToString("yyyyMMdd")』を『DateAdd("d", 0, Me.Date健診日.Text).ToString("yyyyMMdd")』にしたらエラーなく動いたのですが、今日職場のPCで検証したら『型が合いません的なエラーが出てしまいます。(日付部分でのエラーみたいなのですが職場でのエラーをメモし忘れました、スイマセン) 日付のフォーマット変更そしてPCの違いによるエラーの発生原因についてご教授お願いします。 Try Dim DT As New DataTable '===============CSVからクエリ=============== Using OleCn As New System.Data.OleDb.OleDbConnection OleCn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & FolderPath & _ ";Extended Properties=""Text;HDR=YES;IMEX=1;FMT=Delimited""" Dim SQL As String = "" SQL = "SELECT * FROM " + CSVFileName + " WHERE 日付 BETWEEN " + DateAdd("d", -1, Me.Date日付.Text).ToString("yyyyMMdd") + " AND " + (Me.Date日付.Text).ToString("yyyyMMdd") Using DA As System.Data.OleDb.OleDbDataAdapter = _ New System.Data.OleDb.OleDbDataAdapter(SQL, OleCn) DT.Clear() DA.Fill(DT) End Using End Using '===============CSV-importへの登録=============== コード省略 Catch ex As Exception MessageBox.Show(ex.ToString, "例外発生") Exit Sub End Try

  • MDBパスワード設定済みDBへ接続

    MDBパスワード設定済み(排他オープンからの設定)のDBへ接続を試みているのですが、うまく 接続できません。 ご教授ください。 ASP vbscript <ソース> set objCon=ServerCreateObject("ADODB.Connection") cn1 = "Provider=Microsoft.Jet.OLEDB.4.0;" & _ "DataSource=" & Server.path("db.mdb") & ";Jet OLEDB:Database Password=password;" objCon.Open cn1 <エラー> Microsoft JET Database Engine エラー '80040e4d' パスワードが正しくありません。

  • VB2010 SQLのUPDATE文エラー

    VB2010とAccess2007で使用しています データを日付順に連番を付けるコードを作成したのですが『UPDATE文構文エラーです』等のエラーが発生します? ご教授お願いします。 Private Sub Button連番_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button連番.Click Dim DT As New DataTable Try Using OleCn As New OleDbConnection(mdbPath) Dim SQL As String = "" SQL = "SELECT * FROM tableA ORDER BY 依頼日" Using DA As System.Data.OleDb.OleDbDataAdapter = _ New System.Data.OleDb.OleDbDataAdapter(SQL, OleCn) DT.Clear() DA.Fill(DT) End Using End Using Using OleCn As New OleDbConnection(mdbPath) Dim SQL As String = "" SQL = "UPDATE tableA SET No = @no WHERE 登録ID_Export = @登録ID" Dim OleCmd As New OleDbCommand(SQL) OleCmd.Connection = OleCn OleCn.Open() OleCmd.Parameters.Add("@no", OleDbType.Integer) OleCmd.Parameters.Add("@登録ID", OleDbType.Integer) For i As Integer = 1 To DT.Rows.Count OleCmd.Parameters("@no").Value = i OleCmd.Parameters("@登録ID").Value = CInt(DT.Rows(i)("登録ID_Export").ToString) OleCmd.ExecuteNonQuery() Next i OleCmd.Dispose() OleCn.Dispose() End Using Catch ex As Exception MessageBox.Show(ex.ToString, "例外発生") Exit Sub End Try MsgBox("ok") End Sub

  • datagridviewからexcelへエクスポートしたい

    datagridviewからexcelへエクスポートしたい アクセス2000に接続をして、クエリから得られる結果をdatagridviewに表示は出来たのですが、 それをエクセルに吐き出す事が出来ずに苦慮しております。 Public Class form1 Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click Dim cn As OleDb.OleDbConnection _ = New OleDb.OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;" _ & "Data Source=C:\VB2008\xxxxx.mdb;") Dim cmd As New OleDb.OleDbCommand("Q1") cmd.CommandType = CommandType.TableDirect Dim da As New OleDb.OleDbDataAdapter() da.SelectCommand = cmd da.SelectCommand.Connection = cn Dim dt As New DataTable da.Fill(dt) DataGridView1.DataSource = dt End Sub 上記のコードでdatagridviewに表示は出来ました。 webで色々調べたのですが、サンプルとなるコードが見つからずの状態です。 サンプルとなるコードはありますでしょうか? そもそも、エクセルに吐き出す事は可能でしょうか? 可能であれば、どのようなコードを書けばよいでしょうか? 環境ですが、 XP(SP3)、 VB2008EXPRESS EDITION Access2000(SP3) Excel2007(SP2) 以上になります。 お忙しい所お手数をお掛けしますが、 ご教授下さい。 以上、宜しくお願いします。

  • データセットへの取得について

    VB2005はじめたばかりです。 MDBからデータを抽出してデータセットへのところでエラーとなります。 Private Sub Button1_Click Dim dAdp As OleDb.OleDbDataAdapter Dim dSet As DataSet = New DataSet("t_社員") Dim cn As OleDb.OleDbConnection _ = New OleDb.OleDbConnection( _ "Provider=Microsoft.Jet.OLEDB.4.0;" _ & "Data Source=C:\VB2005\SampleDB.mdb;") dAdp = New OleDb.OleDbDataAdapter("SELECT * FROM 社員 where 社員番号=>101", cn) dAdp.Fill(dSet, "t_社員") ★ここでエラーとなってしまいます。【where 社員番号=>101", 】をトルと正常となります。 恐れ入りますがご指摘いただけますでしょうか。

  • VB2010でCSV取込

    VB2010とAccessを使用しています。 あるCSVファイルからACCESSへデータ取り込みをしようとして CSVをデータテーブルに代入するコードを考えているのですが 下記のコードでは『FROM句』のエラーのようでうまく作動しません? ご教授お願いします。 Private Sub ToolMenu_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ToolMenu.Click Dim OFD As New OpenFileDialog OFD.FileName = "" OFD.InitialDirectory = "\\10.20.100.35\data\LOG\" OFD.Filter = "CSVファイル(*.csv)|*.csv|すべてファイル(*.*)|*.*" OFD.FilterIndex = 1 OFD.Title = "取り込むCSVファイルを選択してください" OFD.RestoreDirectory = True OFD.CheckFileExists = True OFD.CheckPathExists = True If OFD.ShowDialog() = DialogResult.OK Then Try Dim DT As New DataTable '===============CSVからクエリ=============== Using OleCn As New System.Data.OleDb.OleDbConnection Dim CSVFileName As String = System.IO.Path.Combine(OFD.InitialDirectory, "aaa.csv") OleCn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & OFD.InitialDirectory & _ ";Extended Properties=""Text;HDR=YES;IMEX=1;FMT=Delimited""" Dim SQL As String = "" SQL = "SELECT * FROM " + CSVFileName Using DA As System.Data.OleDb.OleDbDataAdapter = _ New System.Data.OleDb.OleDbDataAdapter(SQL, OleCn) DT.Clear() DA.Fill(DT) End Using End Using Catch ex As Exception MessageBox.Show(ex.ToString, "例外発生") Exit Sub End Try End If End Sub

  • VB2005でMDBに接続方法

    お世話になります。 VB2005でアクセスに接続したいのですが、 よく理解できません。 こんな感じで、ネットで見たのを 記述したのですが、なんかエラーになります。 VB6みたいに参照設定が必要なのでしょうか? (記述例) Dim Cn As New OleDbConnection  ↑で警告?になる。 ("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=d:\データ.mdb") Dim SQLCm As OleDbCommand = Cn.CreateCommand ↑参照コンポーネントがみつかりませんでした。 と怒られます。 宜しくお願いいたします。

専門家に質問してみよう