• ベストアンサー

VB データグリッドの仕様・・・。(初心者)

VBのデータグリッドにACCESSのデータベースを取り込み、検索するシステムを作っています。 データベースには「売上ID・車種・売上額」を用意しており、データグリッドには項目として、「車種・売上額・[選択ボタン]」を設定しています。[選択ボタン]はグリッドのプロパティの"ボタン列"を使用しています。データをデータグリッドに取り込む際、[選択ボタン]のプロパティの"テキストフィールド"には"売上ID"を設定しているのですが、(表示したくないので)プロパティの"テキスト書式文字列"に"詳細"と打ち込み、画面上には出ないようにしてます。しかし、この状態でプログラムしていくと、一番肝心な売上IDの情報をデータグリッドから取ろうとすると、"詳細"のテキストしか取得できません!選択ボタンに設定した売上IDを取得するにはどんなロジック(プロパティ)から取得できるのでしょうか?

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

  • ベストアンサー
  • ykkw_2001
  • ベストアンサー率26% (267/1014)
回答No.1

たぶん、 >"テキスト書式文字列"に"詳細"と打ち込み が、まずいような気がします。 >売上IDの情報をデータグリッドから取 るのではなく、Accessデータのオブジェクトから取るようにすればいいんですが・・・ ここで、聞くより解説書やウェブサイトのサンプルを見るほうが、早いんじゃないかと思ったりします。

kyo----
質問者

お礼

ありがとうございました。

その他の回答 (1)

回答No.2

VB.NETでしょうか? それなら、売上IDの列を追加して表示しない状態にすれば良いでしょう。 VB6の場合なら、同じように売上IDの列を追加して表示幅を0にしちゃいましょう。

kyo----
質問者

お礼

ありがとうございました。

関連するQ&A

  • VBのデータグリッドが表示されない!!!

    こんにちはtmgmです。 データグリッドが表示されません。 状況としては 1.プログラムは正常に動いています。(「接続に成功しました」メッセージ、「レコード取得に成功しました」メッセージ、ともに表示されます。) 2.しかしデータグリッドには何一つ表示されません。(ツールボックスから貼り付けたままの状態です) 3.参照設定はMicrosoft ActiveX Data Objects 2.5 Library、コンポーネントはMicrosoft DataGrid Control6.0(SP5)(OLEDB)です。 どなたかお分かりになる方いらっしゃいますでしょうか?非常に困っています。 ご返答よろしくお願いします。 ------------------------------------------------ Dim CONN As ADODB.Connection 'レコードセットの宣言 Dim RECO As ADODB.Recordset '接続の宣言 Set CONN = New ADODB.Connection '接続のプロパティ With CONN .ConnectionString=     "provider=Microsoft.jet.oledb.4.0;" _ & "data source=C:\TESTMDB.mdb" .Open End With MsgBox "データベース接続に成功しました"   'レコードセットのプロパティ Set RECO = New Recordset With RECO .ActiveConnection = CONN .Source = "SELECT ~(省略)" .CursorLocation = adUseClient .CursorType = adOpenStatic .LockType = adLockOptimistic .Properties("IRowsetIdentity") = True .Open End With   'レコードセットをデータグリッドに連結 Set D_GRID.DataSource = RECO MsgBox "レコードセット取得に成功しました ------------------------------------------------

  • リストトボックス、データグリッド

    関連書籍や過去ログを見ましたが次の方法がわかりません。どなたかご教示いただけたら幸いです。 1)テーブル内の1つまたは2つの列のデータをリストボックスにそっくり表示する方法 2)データグリッド内で選択した1つのセル内のテキストをテキストボックスに貼り付ける方法

  • VBのデータグリッドの表示が消えてしまいました。何故でしょうか?

      cn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" _ & "Data Source=C:\生徒管理\生徒.mdb;" cn.Open mySQL= "SELECT * FROM 2学年 " _ & "WHERE (((所属)='" & frmPW.cmb生徒.Text & "'))" Set rs= New ADODB.Recordset rs.Open mySQL, cn, adOpenStatic Set DataGrid1.DataSource = rs と記述していて、それまでデータグリッドにデータが上手く表示されていたのに、 接続先のmdbファイルにパスワードを設定して、ConnectionStringの設定部分を   cn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" _ & "Data Source=C:\生徒管理\生徒.mdb;" & _ "Jet OLEDB:Database Password=seito2;" に変更したところ、データグリッドにデータが表示されなくなりました。 データベースへの接続は上手くいっているようなのですが、何故データグリッドに データが表示されなくなったのでしょうか。 よろしくお願いします。

  • データグリッドでBeforeDeleteイベントが発生しない

    現在データグリッドを使っていて、 ○レコード削除時の確認と ○リレーションテーブルレコードの削除をしようと思っています。 しかしグリッドで行選択し、Deleteボタンでレコードを削除しようとしても、BeforeDeleteイベントがスルーされます。何故なのでしょうか? 他に上記2つの目的を果たす事が出来る方法があればそれでもいいのですが・・。 よろしくお願いします。 環境等: Windows2000Pro VB6.0 DataGrid Control6.0 ADODB Connection Provider=Jet.OLEDB.3.51

  • VB6.0 DataGridでのfirstRowの設定について

    VB6.0でデータベースの内容を更新するプログラムを作成しています。 1.データベースの内容をデータグリッドに読み込む 2.グリッドより1行を選択、レコードを新しくOpenしたダイアログに表示する。 3.ダイアログ内でレコードを修正・更新する。更新した内容をデータグリッドに反映させるため、グリッドのRefreshを行う。 4.ダイアログを閉じる。 とした場合、3のリフレッシュでブックマークの位置が変わってしまいます。 ブックマークを元通りに戻すため、2でブックマークの位置をバリアント型変数に退避し、4以降でブックマークを退避しておいた値に戻すようにしましたが、こうすると設定しなおしたブックマークの行がグリッドの先頭に表示されてしまい、ダイアログを開く前のグリッドとは違った表示になってしまいます。 FirstRowプロパティを使えば良いような気がしますが、FirstRowを単にストリング型変数を使って退避し、元に戻すわけではないようです。 (元に戻すときにエラーになります。) FirstRowプロパティをうまく使われている方、ぜひご教示ください。 お願いいたします。 Public Sub Click_Mainte修正ボタン(Frm As Form, Dgd As DataGrid, AdoD As Adodc, NewFrm As Form) Dim lngRow As Long Dim strFirstRow As String Dim varRow As Variant On Error Resume Next If Not Chk_Records(Dgd, Frm) Then GoTo Exit_ strFirstRow = Dgd.FirstRow varRow = Dgd.Bookmark Load NewFrm NewFrm.Show vbModal AdoD.Refresh Dgd.Bookmark = varRow Dgd.FirstRow = strFirstRow  '「ブックマークの値が不正です」エラーになってしまう。 Exit_: On Error GoTo 0 End Sub

  • データグリッド・・・?

    データグリッドにデータを入れたいのですが、入りません。ソースを書きますのでご指摘お願いします。 Set cn = New ADODB.Connection Set rs = New ADODB.Recordset ' 接続文字列を設定 cn.ConnectionString = _ "Provider=Microsoft.Jet.OLEDB.4.0;" & _ "Data Source=c:¥aaa.mdb" ' コネクションをオープン cn.Open ' 選択クエリーを作成 strSQL = "Select * From bbb where ID = " & dbid & _ " ORDER BY 年月日 DESC" ' レコードセットをオープン rs.Open strSQL, cn, adOpenStatic, adLockOptimistic set DataGrid1.DataSource = rs ' オブジェクトを閉じる rs.Close cn.Close ' オブジェクトを解放 Set rs = Nothing Set cn = Nothing

  • データグリッドの項目をクリックする

    VB初心者です。 WinXP:VB2003:MSDE 顧客マスタテーブル(c-table) c-id c-name c01 suzuki c02 tanaka c03 yamada 商品マスタテーブル(g-table) g-id g-name g-bikoh g01 suzu aa g02 boushi bb g03 chair cc 販売テーブル(s-table) c-id g-id c01 g01 c01 g02 c03 g01 c01 g03 c02 g01 c03 g01 このようなテーブルがあって、Form1で顧客マスタをデータグリッドに 表示させ、任意の顧客を選択しクリックするか、任意の顧客を選択し 「一覧ボタン」をクリックすることで、その顧客が購入した商品の 一覧を新たなForm2のデータグリッドに一覧で表示させ、 さらに商品ID をクリックすることで、その商品の名前(g-name)や備考欄 (g-bikoh)を新たなフォームForm3でデータグリッドに一覧表示させたく思っています。 Form1で顧客マスタテーブル内の顧客を絞り込むことはできますが、それ以降が できません。 これだけの情報では難しいかと思いますが、よろしくお願いいたします。

  • VB2005 のイベントについて

    いつもお世話になっています。 OS:Windows 2000 言語:VB2005 Express Edition で作成しているのですが、イベントの質問があります。 TextBoxのフォーカスを取得した時に、 そのTextBoxに設定されている文字列を選択させようと思い TextBoxのEnterイベントでSelectAllをしているのですが、 この場合ですと、マウスでクリック選択した時には文字列が選択されません。 Private Sub txt_id_Enter(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles txt_id.Enter txt_id.SelectAll() End Sub VB6.0 では Private Sub txt_id_GotFocus txt_id.SelStart = 0 txt_id.SelLength = Len(ob_Textbox.Text) End Sub 上記の通り、GotFocusイベントを使用しており、Tabキーでフォーカス取得していた時も マウスで選択している時も変わらず文字列は選択されていました。 VB2005のGotFocusイベントでは、一旦選択されるのですが すぐに選択は解除されてしまうのです。 他にVB6.0のGotFocusと同等のイベントや、対応策などありませんでしょうか? よろしくおねがいいたします。

  • 【VB】データグリッドビューコントロールで選択した行のカウントを取得するには

    VB2005です。 大変基本的な質問だと思いますがよろしくお願いします。 タイトルそのまんまなのですが、選択したrowのカウントを取得したいのです。 目的はデータグリッドビューコントロールに表示した データベースの行を選択して削除するだけです。 グリッドにデータベースは表示できています。 ADO.NETを使用しています。よろしくお願いします。m(__)m

  • FlexGridで複数選択したセル、行、列を取得

    VisualBasic5を使用しています。 フレキシブルグリッドコントロールについてですが、 複数の行や列やセルを選択したときにそれらの値を取得するプロパティとかって何かありませんか? 特に行について教えて欲しいのですが。

専門家に質問してみよう