データグリッドから値を取得するには?

解決


稲兎  2004-02-27 22:50:28  No: 112095

いつもお世話になっています。
frmKounyuuフォームとfrmKounyuuSBフォームがあり、frmKounyuuSBフォームにデータグリッドを作成し、商品名の一覧を表示するようにしています。
frmKounyuuSBフォームのデータグリッドから購入したい商品名をクリックするとその品名を取得してfrmKounyuuフォームのテキストボックスへと表示したいと考えております。
現在、frmKounyuuSBフォームに下記の方法でやってみたのですが、『現在の行は使用できません』と云うエラーメッセージが表示されてしまいます。
ご指摘する箇所がありましたら教えて下さい。
宜しくお願い致します。

Private cnn As ADODB.Connection
Private recHinmei As ADODB.Recordset

Private Sub dgdHinmei_Set()
'品名 表示
    Dim strHinmei As String
        strHinmei = "select tecHinmei.hinmei As 品名,katashiki As 型式,hosoku As 補足 " & _
                    "from tecHinmei"
    
    Set recHinmei = New ADODB.Recordset
        recHinmei.CursorLocation = adUseClient
        recHinmei.Open strHinmei, cnn, adOpenStatic, adLockPessimistic
    
    Set Me.dgdHinmei.DataSource = recHinmei
        Me.dgdHinmei.AllowAddNew = True    '新規入力レコード 表示
        Me.dgdHinmei.ScrollBars = dbgAutomatic 'スクロールバー 自動表示
        Me.dgdHinmei.Columns(0).Width = 5000
        Me.dgdHinmei.Columns(1).Width = 5000
        Me.dgdHinmei.Columns(2).Width = 5000
End Sub

Private Sub dgdHinmei_Click()
'テキストボックス 転記
    frmKounyuu.txtHinmei.Text = Me.dgdHinmei.Columns(0).Text
    frmKounyuu.txtKatashiki.Text = Me.dgdHinmei.Columns(1).Text
    frmKounyuu.txtHosoku.Text = Me.dgdHinmei.Columns(2).Text
End Sub

Private Sub Form_Load()
'コネクションオブジェクト 作成
    Set cnn = New ADODB.Connection
        cnn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\system\TechniqueDB.mdb;"
        cnn.Open

'データグリット 品名表示
    Call dgdHinmei_Set
End Sub

Private Sub Form_Unload(Cancel As Integer)
'使用済オブジェク トクローズ
    cnn.Close
    Set cnn = Nothing
End Sub


稲兎  2004-02-27 22:57:29  No: 112096

追加・・・

本当は、
frmKounyuuSBフォーム データグリッドの品名をクリックすると、frmKounyuuフォームの品名テキストボックスへ品名だけを表示。

frmKounyuuSBフォーム データグリッドの型式をクリックすると、frmKounyuuフォームの型式テキストボックスへ型式だけを表示。

frmKounyuuSBフォーム データグリッドの補足をクリックすると、frmKounyuuフォームの補足テキストボックスへ補足だけを表示。

・・・というように、各フィールド毎に単独で行いたかったのですが、どうすれば良いのか分からなかった為、まとめて表示するようにしてしまいました。


特攻隊長まるるう  2004-02-27 23:41:03  No: 112097

とりあえずこの辺を見て工夫してみてください。
データがたくさんあってスクロールしたりなんかすると色々考えないと
うまく取れないかも?。
[VB6.0]
Private Sub dgdHinmei_RowColChange(LastRow As Variant, ByVal LastCol As Integer)
    With Me.dgdHinmei
        Debug.Print .Text; .Row; .Col
        Debug.Print recHinmei.AbsolutePosition
        Debug.Print .Bookmark
        Debug.Print ""
    End With
End Sub


稲兎  2004-03-10 23:11:06  No: 112098

特攻隊長まるるう様

回答が随分遅くなりまして申し訳有りませんでした。
色々調べたところ、解決出来ました。
ご指導ありがとうございました!


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




  


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