DBでまったく同じ名前の人が登録されていた場合

解決


名無しのごんべぇ  2005-12-14 20:41:45  No: 128886

DBでまったく同じ名前の人が登録されていた場合、名前とフリガナがデータに存在する数だけ繰り返して表示されます。
(例)「田中」という名前が2つ存在した場合、検索後に表示される名前とフリガナ
は「田中…田中」とか「タナカ…タナカ」となります。

↓は指定されたテキストにデータを格納する処理関数を作って飛ばしています。
Public Sub SQLData(st_value As String, textC As Control)
   Dim strSQL As String
    '前のデータが入っているといけないので、クリアの処理をする
    textC.Text = ""
  
    Do Until rs.EOF
        '値がNUllの場合、処理を抜ける
        If IsNull(rs.Fields(st_value)) Then
            textC.Text = ""
            Exit Sub
        End If

        strSQL = rs.Fields(st_value)
        If textC.Text = "" Then
            textC.Text = strSQL
        Else
            textC.Text = textC.Text & vbCrLf & strSQL
        End If
    rs.MoveNext
    Loop
    rs.MoveFirst
SQL文で情報を取りに行くときに、条件を工夫すればいいんでしょうか?

DBはAccessです。
VB6バージョンを使用してます。
ご教授お願いします。
End Sub


特攻隊長まるるう  2005-12-14 21:00:35  No: 128887

できてるんだから、それで良いと思いますが、
>SQL文で情報を取りに行くときに、条件を工夫すればいいんでしょうか?
http://sql.main.jp/cont/sql/se/group.html


名無しのごんべぇ  2005-12-14 22:09:11  No: 128888

DBのAddressテーブルには
ID、  名前、       カナ、     メールアドレスの項目があって。
001  田中浩二      タナカコウジ  aaa@co.jp
002  伊藤ヒロシ    イトウヒロシ   bbb@ne.jp
003  田中浩二      タナカコウジ  ccc@co.jp

とあったとします。

テキストボックスに「田」と入力して、検索ボタンをクリックすると、
あいまい検索をして、
下記のSQLでデータを取りにいきます。
SELECT *
FROM Address
WHERE Name LIKE '田*'

上記の条件で、2件以上ある場合は、もう1つのフォームが表示されて
リストボックスに「田」の付く名前の人の一覧が表示されて
その中から、「田中浩二」を選ぶと、メインフォームのそれぞれの
テキストボックスに、ID、名前、カナ、メールアドレスが表示されるように
したいんですけど、前にも言ったように、名前のテキストボックスとかに
「田中浩二…田中浩二」となってしまうんです。
いいSQL文が思いつかなくて。。。
教えてください。


saku  2005-12-14 22:43:01  No: 128889

最初の文面を読んだだけじゃどういうことがしたいかわからないので、自分の理想と現実の状況をちゃんと書いてください。
要するにSQLで抽出したデータがあって、それをリストボックスに表示。
リストボックスで選んだ人の情報をメインで表示させたいけど、うまくいかないって事ですか?


特攻隊長まるるう  2005-12-14 22:44:12  No: 128890

>リストボックスに「田」の付く名前の人の一覧が表示されて
その時点で001の田中浩二と003の田中浩二は違う人(少なくともDB上は)
なんだから
>「田中浩二…田中浩二」となってしまうんです。
必要な処理にしか思えないんですが?どちらかの田中浩二
が選ばれた時点でIDで情報を取ればいいのでは?。
逆に、田中浩二を選択した場合、どちらの情報を表示するのですか?


名無しのごんべぇ  2005-12-15 22:05:11  No: 128891

sakuさん、特攻隊長まるるうさんありがとうございます。
お二人のレスを見て、思いついてやってみたら出来ました
説明不足ですみませんでした。


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

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






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