VB6でDVの検索をするには?

解決


宮彦  2007-07-19 19:46:39  No: 136991

VBを始めて16日目ですが、ちょっとした難題にぶち当たってしまいました。
内容といたしましては、
1 ページ目が txt担当Noとtxt担当者名と、終了・登録・削除・検索の各ボタン
①SQLサーバー上の新規データベースTSTDBを作りその中に担当者マスタを作成

|略

で、問題がここから。
1 ページ目で検索ボタンを押したときに
①2ページ目に移る (ここはコーディング済み)
②データベースの内容(テーブルの中)をすべてVBに表示させる(昇順)
③更にダブルクリックで選んだ項目を前のページ(txt担当No、txt担当者名)に貼り付ける (ついでに2ページ目終了)
④戻るボタン(戻るに関しても form1.show form2.hide を摘要済み)
というものです。
2 ページ目のフォームをどのようにコーディングするのかが解かりません。

使用VB  VB 0.6


宮彦  2007-07-19 19:49:34  No: 136992

すいませんタイトル間違えてます。
誤  VB6でDVの検索をするには?
正  Vb6でDBの検索をするには?


まさ  2007-07-19 21:39:46  No: 136993

どの部分が分からないのでしょうか?

DBの接続?
フォーム1にデータを貼り付ける部分?


宮彦  2007-07-19 22:12:00  No: 136994

DBに接続は完了しています。説明不足ですいません
SQlサーバーとVBの接続は完了済で、VBからのデータベースの追加や削除はできる状態です。
わからない部分は2ページ目にデータベースの内容を貼り付ける部分と、
データベースの内容をダブルクリックした時にそれぞれのtextbox(txt担当者Noとtxt担当者名)に挿入することです。
番号で言うと検索ボタンを押した後の②番と③番ですね


まさ  2007-07-23 03:16:02  No: 136995

どの様に表示しようとしていますか?
表形式?単票形式?
どちらにせよ、取得したレコードセットを回していくだけです。

あと、別フォームにデータを表示する方法は、
Form1.txt担当者.Text = "担当者"
のようにすればできます。(始めにフォーム名を足す)


宮彦  2007-07-23 22:36:30  No: 136996

レス遅れてすいません。
現在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
−−−−−−−−−−−−−−−−−−−−−−−−

今週火曜(というか明日)〆切のプログラムですのでお力を貸していただけると幸いです。


かさのば  2007-07-24 06:54:03  No: 136997

MSFlexGridのダブルクリックイベントでカレント行の各列の値を取得して
Form1に渡してあげればいいだけでは?
異なるFormにデータを渡す方法はまささんが示されていますよね。


宮彦  2007-07-24 19:13:01  No: 136998

まさ殿!かさのば殿!ご協力感謝です(>Д<)ゞ
無事解決いたしました


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

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






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