VBを始めて16日目ですが、ちょっとした難題にぶち当たってしまいました。
内容といたしましては、
1 ページ目が txt担当Noとtxt担当者名と、終了・登録・削除・検索の各ボタン
①SQLサーバー上の新規データベースTSTDBを作りその中に担当者マスタを作成
②
|略
⑤
で、問題がここから。
1 ページ目で検索ボタンを押したときに
①2ページ目に移る (ここはコーディング済み)
②データベースの内容(テーブルの中)をすべてVBに表示させる(昇順)
③更にダブルクリックで選んだ項目を前のページ(txt担当No、txt担当者名)に貼り付ける (ついでに2ページ目終了)
④戻るボタン(戻るに関しても form1.show form2.hide を摘要済み)
というものです。
2 ページ目のフォームをどのようにコーディングするのかが解かりません。
使用VB VB 0.6
すいませんタイトル間違えてます。
誤 VB6でDVの検索をするには?
正 Vb6でDBの検索をするには?
どの部分が分からないのでしょうか?
DBの接続?
フォーム1にデータを貼り付ける部分?
DBに接続は完了しています。説明不足ですいません
SQlサーバーとVBの接続は完了済で、VBからのデータベースの追加や削除はできる状態です。
わからない部分は2ページ目にデータベースの内容を貼り付ける部分と、
データベースの内容をダブルクリックした時にそれぞれのtextbox(txt担当者Noとtxt担当者名)に挿入することです。
番号で言うと検索ボタンを押した後の②番と③番ですね
どの様に表示しようとしていますか?
表形式?単票形式?
どちらにせよ、取得したレコードセットを回していくだけです。
あと、別フォームにデータを表示する方法は、
Form1.txt担当者.Text = "担当者"
のようにすればできます。(始めにフォーム名を足す)
レス遅れてすいません。
現在MSFlexGridを使って表全体を表示しています。
表全体を表示できましたので、残るは固定行以外のセルをダブルクリックしてそのデータを2種類のテキストボックスそれぞれに担当者Noと担当者名を表示させる設定です。
①がNoで②が担当者名
1ページ目 2ページ目
−−−−−−- −−−−−−
| [①] | |「‾‾‾| |
| [②] | | | 表 」|
| | | ‾‾‾ |
−−−−−−- −−−−−−
ついでに現在のコードを載せておきます。
−−−−−−−−−−−−−−−−−−−−−−−−
'固定行
MSFlexGrid1.TextArray(0) = "担当者No"
MSFlexGrid1.TextArray(1) = "担当者名"
'SQLへの通行手形
Set Conn = New ADODB.Connection
Conn.ConnectionTimeout = 30
Conn.CommandTimeout = 30
Conn.Open "Provider=SQLOLEDB;" & _
"Server=(local);" & _
"Database=TSTDB;" & _
"Persist Security info = FALSE;" & _
"Integrated Security = SSPI"
'SQLを投げる
mysql = "SELECT * From 担当者マスタ" _
& " order by 担当者No"
Set rs = Conn.Execute(mysql)
'フレックスグリッドにデータを出す
Y = 2
i = 2
Do Until rs.EOF
MSFlexGrid1.TextArray(i) = rs![担当者No]
i = i + 1
MSFlexGrid1.TextArray(i) = rs![氏名漢字]
i = i + 1
rs.MoveNext
'そのままだとRowsの数が足りなくなるので一度追加
If Y * 2 = i Then
Y = Y + 1
MSFlexGrid1.Rows = Y
End If
Loop
'終了した時に1行多いので削除
If Y * 2 - 1 > i Then
Y = Y - 1
MSFlexGrid1.Rows = Y
End If
rs.Close
Set rs = Nothing
−−−−−−−−−−−−−−−−−−−−−−−−
今週火曜(というか明日)〆切のプログラムですのでお力を貸していただけると幸いです。
MSFlexGridのダブルクリックイベントでカレント行の各列の値を取得して
Form1に渡してあげればいいだけでは?
異なるFormにデータを渡す方法はまささんが示されていますよね。
まさ殿!かさのば殿!ご協力感謝です(>Д<)ゞ
無事解決いたしました
ツイート | ![]() |