投稿日 | : 2004/06/18(Fri) 17:40 |
投稿者 | : 旅人A |
Eメール | : |
URL | : |
タイトル | : Re: exeだとエラー |
根本的な解決にはなってないですが、こうしたらどうかという案を。
kamurinさんのやろうとしてることを纏めると
1.全てのレコードをレコードセット
2.一致するカルテの取得
3.一致するカルテの判定
3−A.(カルテがある場合)
メッセージボックスで表示確認
3−B.任意のカルテ情報をもつレコードをレコードセット
こんな感じかと思います。
(気になるところ)
1.テキストボックスに表示するのは最初に見つかったレコードの氏名でいいのか?
2.一回目のレコードセット閉じてないのに同じ変数で新しいレコードセットをしてる
3.(多分AccessをDAOで接続してると思うけど・・)SQLの最後にセミコロン(;)がない
4.カルテIDは紹介者なのに、「'」はいらない?
(Source)
Dim SQLStr As String
Dim Flg As Boolean
Dim Syoukaisya As String
Dim Simei As String
Flg = 0'初期化
SQLStr = ""
Syoukaisya = ""
Simei = ""
----------------------------中略-------------------------------(DBのSetなど)
SQLStr = "SELECT * FROM T_カルテ情報 WHERE 電話番号 = '" & imMask1.Value & "';"
Set rs_T_カルテ情報 = db.OpenRecordset(SQLSTR, dbOpenDynaset)
'レコード数を取得して、データがあるかないかをチェック
If rs_T_カルテ情報.Recordcount > 0 Then
Flg = True
'ヒットしたカルテ情報の最初の紹介者を取得
rs_T_カルテ情報.MoveFirst
' Simei = rs_T_カルテ情報!氏名
' Syoukaisya = rs_T_カルテ情報!紹介者
Simei = rs_T_カルテ情報("氏名").Value
Syoukaisya = rs_T_カルテ情報("紹介者").Value
Else
Flg = False
End If
'レコードセットクローズ!!
rs_T_カルテ情報.Close
If Flg = True Then
LongMsg = "該当するカルテがありました。" & vbCrLf
LongMsg = LongMsg & "「表示」しますか?"
If MsgBox(LongMsg, vbYesNo, "表示確認") = vbYes Then
imText1(3).Text = Simei
SQLStr = ""
SQLStr = "SELECT * FROM T_カルテ情報 WHERE カルテID = '" & Syoukaisya & "';"
Set rs_T_カルテ情報 = db.OpenRecordset(SQLStr, dbOpenDynaset)
If rs_T_カルテ情報.BOF = False Then
Else
End If
rs_T_カルテ情報.Close
End If
End If
※見た目だけで実際には動かしてないので漏れなどあるかもしれません。