• ベストアンサー

VB6 DataGrid コントロールについて

お世話になっております。 VB6でDataGridコントロールについてどなたか教えてください! いろいろ調べたのですが、昔のコントロールのせいかあまり資料がありませんでした。 DataGridをフォームに貼り付けました。 ExcelのB1セルをDataGridに表示したいのですが、わかりません。 VBのTextBoxに表示はできます。DataGridが全くわかりません。 どうか、ご教示お願い致します!

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

  • ベストアンサー
  • piroin654
  • ベストアンサー率75% (692/917)
回答No.2

あるいは、こういう方法も。Excelの設定はNo1と同じにします。 No1の rs.Open "SELECT [sheet1$].[名前] FROM [sheet1$] WHERE [sheet1$].[ID]=2", cn を rs.Open "SELECT * FROM [sheet1$] ", cn としてすべて表示しておきます。No1はボタンクリック で表示してもいいです。 フォームにボタンを一つ、テキストボックスを二つ用意します。 ボタンクリック時のイベントで、 Private Sub Command1_Click() Dim rs As ADODB.Recordset Set rs = New ADODB.Recordset Dim xFile As String Dim cn As String Dim str As String rs.CursorLocation = adUseClient rs.CursorType = adOpenKeyset rs.LockType = adLockBatchOptimistic xFile = "C:\Documents and Settings\user\デスクトップ\VB1\23\AAA.xls" str = "SELECT [sheet1$]." & "[" & Me!Text1.Text & "]" & " FROM [sheet1$] WHERE [sheet1$].[ID]=" & CLng(Me!Text2.Text) & "" '必要ならデバッグでSQLの内容を確認してみてください 'Debug.Print str cn = "DRIVER=Microsoft Excel Driver (*.xls);" & "DBQ=" & xFile rs.Open str, cn Set DataGrid1.DataSource = rs Set rs = Nothing End Sub テキスト1には列名の名前、住所、年令のどれかを 入れ、テキスト2にはIDの番号をいれます。

ichyojp
質問者

お礼

piroin654樣 ありがとうございます。しかも二件も投稿していただきまして。 難しくてまだ内容が理解できませんが、このアドバイスを咀嚼して 調べなごがらやってみます。 本当にありがとうございました! またよろしくお願い致します。

その他の回答 (1)

  • piroin654
  • ベストアンサー率75% (692/917)
回答No.1

たとえば、 DataGrid1.Columns(0).Text = exlApp.Worksheets("sheet1").Cells(2, 2).Value のような方法ではDatagridにデータを表示できないのでは 思います(何分とおおおおおおおい昔のことで)。 たぶん実行時エラーが出ると思いますが。 msgbox exlApp.Worksheets("sheet1").Cells(2, 2).Value ならば、メッセージボックスでセルの値を表示しますが。 DataGridはレコードセットならば表示しやすいので、 (あるいはDataGridはレコードセットが必要 だったかもしれません) たとえば、Excelファイルに ID  名前  住所  年令 1  徳川   江戸  50 2 豊臣   難波  49 3  毛利   長州  50 などのようにデータがあるとすると、フォームのロード時 などに、 Dim rs As ADODB.Recordset Set rs = New ADODB.Recordset Dim xFile As String Dim cn As String rs.CursorLocation = adUseClient rs.CursorType = adOpenKeyset rs.LockType = adLockBatchOptimistic xFile = "C:\Documents and Settings\user\デスクトップ\VBフォルダ\AAA.xls" cn = "DRIVER=Microsoft Excel Driver (*.xls);" & "DBQ=" & xFile のようにして、上記以降を rs.Open "SELECT * FROM [sheet1$] ", cn としてデータをすべて表示するところを、 rs.Open "SELECT [sheet1$].[名前] FROM [sheet1$] WHERE [sheet1$].[ID]=2", cn として、IDが2の名前の豊臣を表示というSQL文を作成してデータを 一つ選択するというのが妥当ではないかと思いますが。以降は Set DataGrid1.DataSource = rs Set rs = Nothing です。反対にDataGridのデータをExcel等に出すのは ある意味大変ですが。

関連するQ&A