mdbファイルをDAOを使ってデータグリッドに表示

解決


米太郎  2005-12-05 23:38:05  No: 128566

○VB6・WinXP・Access2000

ほかの方の質問で「CSVをデータグリッド表示」というものがあったのですが私のほうは「mdbをデータグリッド表示」ということをしたいのです。
ローカルなデータを扱うのでDAOで行いたいのですがサンプルがなかなか見つからず(ADOでアクセスするのはあったのですが)コマってしまいました。

Accessのデータベースへの接続はできております。
そこからどうデータを取得してグリッドに表示すればいいのかがわかりません。csvファイルの場合は1行ずつLineInputで読み込んで配列方の変数にいれてデータグリッドに表示すればできますよね?
(カンマ区切りのデータだったらカンマ区切りを読み込む関数などで処理をして)

mdbファイルのデータを表示する場合も同じ考え方でいいのでしょうか?
ご教授よろしくお願いします。


特攻隊長まるるう  2005-12-06 00:55:29  No: 128567

説明を省略されると何を言ってるのか分かりません。
過去ログを参考にしたならアドレスを書き込んで下さい。

例えば
http://madia.world.coocan.jp/vb/vb_bbs/200310_03100142.html
では、最初DAOを使ってますが、
>k.k 2003/10/29(水) 20:12:14
のレスの内容を理解された後は、ADOを使われてます。

>csvファイルの場合は1行ずつLineInputで読み込んで配列方の変数にいれて
>データグリッドに表示すればできますよね?
配列?DataGrid に表示できるかどうかは知りませんが、配列に入れたいだけなら
DataGrid は無視して、DAO.RecordSet からデータが取れれば実現できます。
サンプルは『DAO.RecordSet』をキーワードに調べてください。


もげ  2005-12-06 01:09:49  No: 128568

DataGridのことであれば、ADO専用なので、
残念ながらDAOは使えないです。

DAOでやるなら、
データコントロール+MSFlexGrid  や
データコントロール+DBGrid
等で行います。

これらは、プロパティ設定だけで、DAOのコーディングなしでも表示ができますが、
以下の例は、意図的にDAOを使用しています。

--------以下、Form1.frm---------------(frm内に半角カナ有り  化けたら失礼)
VERSION 5.00
Object = "{5E9E78A0-531B-11CF-91F6-C2863C385E30}#1.0#0"; "MSFLXGRD.OCX"
Begin VB.Form Form1 
   Caption         =   "Form1"
   ClientHeight    =   2355
   ClientLeft      =   1800
   ClientTop       =   1530
   ClientWidth     =   5085
   LinkTopic       =   "Form1"
   ScaleHeight     =   2355
   ScaleWidth      =   5085
   Begin VB.Data Data1 
      Caption         =   "Data1"
      Connect         =   "Access 2000;"
      DatabaseName    =   ""
      DefaultCursorType=   0  '既定値のカーソル
      DefaultType     =   2  'ODBC
      Exclusive       =   0   'False
      Height          =   585
      Left            =   30
      Options         =   0
      ReadOnly        =   0   'False
      RecordsetType   =   1  'ダイナセット
      RecordSource    =   ""
      Top             =   1800
      Width           =   5025
   End
   Begin MSFlexGridLib.MSFlexGrid MSFlexGrid1 
      Bindings        =   "Form1.frx":0000
      Height          =   1725
      Left            =   0
      TabIndex        =   0
      Top             =   30
      Width           =   5055
      _ExtentX        =   8916
      _ExtentY        =   3043
      _Version        =   393216
   End
End
Attribute VB_Name = "Form1"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Option Explicit
Dim db As DAO.Database
Dim rs As DAO.Recordset
Dim ws As DAO.Workspace

Private Sub Form_Load()
Dim strSQL As String
    strSQL = "SELECT * FROM 社員"
    Set ws = DBEngine.Workspaces(0)
    Set db = ws.OpenDatabase("C:\Program Files\Microsoft Office\Office\Samples\Northwind.mdb")
    
    Set rs = db.OpenRecordset(strSQL)
    Set Data1.Recordset = rs
End Sub


米太郎  2005-12-06 01:26:10  No: 128569

>特攻隊長まるるう様
こちらの言葉が足りず申し訳ありませんでした。
DAO.RecordSetで検索して勉強します。

>もげ様
データグリッドはADO専用なんですね。勉強不足でした。
サンプルのプログラム、ありがとうございます。
早速使わせていただきます。

お二方共本当にありがとうございました。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加