• ベストアンサー

VB6.0でアクセス2000のデータを使いたいです。

VB6.0でアクセス2000のデータを使用してdatagridに表示したいのですが、データオブジェクトのdatabasename(プロパティ)にアクセスデータを指定しても、recordsource(プロパティ)にアクセスのテーブル名が表示されないのです。他のアクセスデータで表示される場合もあるのですが、その違いが不明ですので宜しくお願い致します。

  • ryuww
  • お礼率52% (9/17)

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

  • ベストアンサー
  • sienna
  • ベストアンサー率35% (51/145)
回答No.5

参考URLを付け忘れました。すいません。 http://homepage2.nifty.com/inform/vbdb/adodc_sqlserver.htm

参考URL:
http://homepage2.nifty.com/inform/vbdb/adodc_sqlserver.htm

その他の回答 (4)

  • sienna
  • ベストアンサー率35% (51/145)
回答No.4

通常のデータコントロールではAccess2000のデータベースは使用できません。 Adoのデータコントロールを使用する必要があります。 (Microsoft ADO Data Control 6.0) 参考URLはSQL Serverの説明ですがコネクションが違うだけですので参考までにどうぞ。

  • ojin
  • ベストアンサー率43% (280/638)
回答No.3

再度、No.2です。 なんとなく、ADOでのアドバイスになってしまいましたが、ODBCが組込まれているのであれば、こちらの方が簡単かもしれない。 コントロールパネル→ODBC→ユーザーDSNタブ→追加→Microsoft Access XXXX database 後は、No.2と同じように、"Data"、"DataGrid"の両方をフォームに張りつけて、"Data"のプロパティで、ODBCを選択して、後は、No.2と同一の手順。 ADOの方が、ODBCより、新しい手法と思いますが、結局は、AccessのJETエンジンを使用することから、速度的にはどうなんですかね!パフォーマンスをうんぬんするような高尚なことやったことないもんで。

  • ojin
  • ベストアンサー率43% (280/638)
回答No.2

OLEDBを使うと思いますが、 コンポーネントに Microsoft ADO Data Control 6.0 (OLEDB) Microsoft DataGrid Control 6.0 (OLEDB) にチェックを入れて、 フォーム上にコンポーネントの"Data"コンポーネントと、"DBGrid"を貼り付ける。 "Data"のプロパティで、 CommandTypeを"2"の"adCmdTable ConnectionStringの選択ボタンを選択すると、プロパティページが開かれる。 "●接続文字列を使用する"を選択→作成ボタン データリンクプロパティウインドウ→プロバイダ Microsoft Jet 4.0 OLE DB Provider→接続タブ→1.データベース名を選択または入力します→選択ボタンから、AccessのMDBファイルを指定するか、ファイルの場所を探す。 できたら、"接続テスト"を行なっておく。"接続に成功しました"と出れば問題なし。 再度プロパティウィンドウで、"テーブル名まはたストアアドプロシージャ名"の選択ボタンで、テーブル名を選択する DataGridのプロパティで "DataSource"に、"Adodc1"で関連付けをする。 これで、実行ボタンで、DataGrid上にAccessデータが表示されるはず。 =============================================== コードで記述するとすれば、 "Data"と、"DataGrid"をフォームに貼り付けて、"DataGrid"の"DataSource"に"Adodc1"を選択する。 いろいろな、記述法があると思いますが、一例として、 Option Explicit Private cn As ADODB.Connection Private rs As ADODB.Recordset データベースへの接続は、  Set cn = cn = New ADODB.Connection cn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0:" _ & "Data Source = C:\(mdbファイルのある場所) cn.Open Set rs = New ADODB.Recordset レコードセットの取得 With rs .ActiveConnection = cn .Source = "テーブル名" .CursorType = adOpenStatic .LockType = adLockOptimistic .Properties("IRowsetIdentity") = True .Open End Wit SQLステートメントの例  mySQL = "SELECT INTO テーブル名(フィールド名) values (SQLの構文を参照してください) SQLの実行 Set cmd = New ADODB.Command With cmd .ActiveConnection = cn .CommandType = adCmdStoreProc .CommandText = mySQL .Execute End With 上記のコードだけでは、具体的な値が入っていないので動作しません。先に書きましたように、いろいろな記述方法があるので、分かりにくい。 分かってもらえるかどうか分かりません。私も、素人なもんで、ごめんなさい。多分表示されなかったのは、"Data"オブジェクトを使用していなかったからではと思います。 とにかく、怪しいアドバイス。

  • yomo3
  • ベストアンサー率32% (88/269)
回答No.1

Accessのイルカくんに 「Jet データベース エンジン SQL」って聞いてみてちょ。

関連するQ&A

  • access2003のデータを使って住所録の作成

    VBでaccess2003のデータ形式を使って住所録を作りたいのですが、うまくいきません。 DatabaseNameを指定したあと、RecordSourceの欄をクリックすると、認識されませんというメッセージがでます。 何故なのかわかりません。 よろしくお願いします。

  • データベースアクセスで。

    VBとAccessを使用してデータのやりとりを行っています。 Data1を貼り、DatabaseNameを設定するところまではうまくいきましたが、RecordSourceプロパティをクリックすると「データベースの形式'C:\xxx\xxx.mdb'を認識できません」と表示されてしまいます。 別DBを設定すると上記の現象がでないので、Accessが原因だとは思いますが、VBを使用する際の注意点などあるのでしょうか? 【環境】WinXP SP2 VB6.0 / Access2000です。

  • ACCESS と VB でこんなプログラムを作ろうとしています。どうやれば・・

    今、VB と ACCESS を 使って簡単なプログラムを作ろうとしています。 ACCESSの中にはテーブルが1つだけあります。 そのテーブルの中のデータをVB上の DATAGRIDに単純に表示します。 ここまではできました。 GRIDへの表示は一度ワークテーブルに入れて そこから表示するのではなくて、 直接そのテーブルから表示しています。 今、そのテーブルの項目にPATHとファイル名 が入っていて、そのPATHにファイルがなかったら GRIDに× あれば ○を表示したいのです。 一度ワークテーブルに入れているのであれば、 あとで、そのワークテーブルを開いて、 ループさせて、DIR でひとつひとつ調べて 更新すればよさそうなのですが、 あくまで直接開きたいのです。 または、一時的なワーク (SQLServer上の##~~~みたいな感じの EXEを閉じたら勝手に消えるようなイメージのテーブル) をACCESSで実現できるならそれでもよいです。 こういう場合、どうやったら ○ と× を表示することができるのでしょう? 困っています。助けてください。 よろしくお願いします。 環境 VB6 SP5 ACCESS2000 Windows2000 SP3

  • DataGridにデータセットのデータを入れたい

    VB.Netで困っております。ご教授いただけないでしょうか。 DataGridオブジェクトにデータセットのデータを表示する際,テーブル上の全データを表示するのではなく,ある条件で絞ったデータを表示するにはどうしたら良いのでしょうか? よろしくお願い致します。

  • AccessのDataGridコントロールについて

    初心者です。宜しくお願いします。 VB6.0でDataGridコントロールを使用する場合は、DataSourceプロパティにRecordsetオブジェクトを代入することによりDataGridコントロールに取得したレコードセットを表示しますが、 例) Set DataGrid1.DataSource = rs Access 2000ではDataGridコントロールにDataSourceプロパティが見当たりません。 どのようにしてレコードセットを表示するのでしょうか? Google等で検索しましたがVBの情報ばかりでAccessのDataGridコントロールに関して取り上げているページが見つかりません。 宜しくお願いします。

  • VB5.0でACCESS2002のテーブルをDBGridに表示

    VB5.0で開発したプログラム内でACCESS97のテーブルをDBグリッドに表示させていました。 ACCESSを2002にバージョンアップさせる必要があり、移行処理をしていましたが、そのままでは「データベースを認識できません」というエラーになってしまいます。DAOデータコントロールのDatabaseNameプロパティが設定できないようです。レコードセットでは読み込めているようなので、レコードセットをデータコントロールに割り当てたら表示されました。 そのときデータコントロールのrefreshはエラーになるためフォーム全体をrefreshしました。 ところがそれをコンパイルしてACESS2002のランタイムのみがインストールされているマシンにインストールするとDBグリッドが表示されません。 どうしたらよいでしょうか?こんな小手先の変更では無理でしょうか?宜しくお願いします。

  • RecordSourceとRecordSet

    アクセスvbaで頻繁に出てくる言葉で RecordSourceとRecordSetは何が違うのでしょうか? どちらもテーブルやクエリを指していると思うのですが、 意味が違うんですよね? それぞれをヘルプで調べたら、 RecordSource→フォームの基になるソース データを示します。 RecordSet→指定されたオブジェクトのレコード ソースを示す ADO の Recordset オブジェクトまたは DAO の Recordset オブジェクトを示します。 との事だったのですが、一緒と思っていいのかよくわかりません。 とりあえず、RecordSourceはフォームに紐付けるテーブルまたはクエリと 認識していますが、違いを教えてください。

  • VBからOracle接続

    VB6.0からサーバのOracle8.1.7に接続し、表示させるプログラムを作って います。 VBのDataGridとAdodcを使いテーブル内容を表示させることは できたのですが、行の削除を行うとエラーになってしまいます。この対処 方法または意味が分かれば教えて下さい。 エラーになる箇所とエラーのメッセージは以下のようになっています。 SqlStr = "DELETE from emp where empno = 1" Adodc1.RecordSource = SqlStr Adodc1.Refresh    ↑   ここで、「オブジェクトが閉じてる場合は操作は許可されません」   というエラーがでます。   (DELETE文をSELECT文にするとエラーはでません)   

  • VB6からアクセスにアクセスできません。

    素人です。 アクセス2002で作ってあるファイルにデータコントロールでアクセスしたいのですが、Connect, DatabaseName を設定した後、RcordSourceを設定しようとすると、「データベースの形式「ファイル名」を認識できません。」のエラーになります。どこをどうすれば良いのでしょうか。

  • VB6.0 DBComboの使い方

    VB6.0でDBComboを使用しているのですが、DataSouurce=Adodc1に設定し、DataField="内容"を設定しているのですが、DBCombo1..BoundTextには内容の1行目しか表示されずDBCombo1のリストには何も表示されません。また、DBCombo1に複数列表示する方法があればお教えいただければと思います。 Adodc1のプロパティ ConnectionString="DSN=ODBC_ORACLE"のODBCのデータソース名を指定して、RecordSource="select ID,内容 From テストマスタ"を設定してあり、DBGRIDでは正常に表示されます。 宜しくお願い致します。

専門家に質問してみよう