
フロッピーディスク内のデータをデータベースに取り込む処理を考えています。
まず、フロッピーディスク内のデータを変数に格納します。
データベースを開いて、患者IDフィールドが違う場合は新たに新規追加します。
患者IDフィールドが同じ場合は、そこから分岐させます。
患者氏名、性別、生年月日がすべて同じ場合は、T-画像情報というテーブルにのみ追加します。
一つでも異なれば、エラーメッセージを出します。
sqlID = "患者ID =" & ID
rs.Find sqlID
If rs.EOF Then
rs.Addnew
新規追加処理
rs.Update
Else
ここで条件分岐
End If
今、現在ここまでのコードが完成しています。
条件分岐の際に
sqlName = "患者氏名 =" & Name
rs.Find sqlName
というコードを追加するとエラーがでてしまいます・・
一旦、rs.Closeしたのち、再度rs.Openしたがいいのでしょうか?
それとも他にやり方があるのでしょうか?
ご指導お願いします。
No.5ベストアンサー
- 回答日時:
最初に患者IDのみで検索して、見つかったら、患者ID・患者氏名・性別・生年月日の"全て"が一致するデータを検索すればいいと思います。
With rs
.Find "患者ID = " & ID
IF .EOF Then
.Addnew
(新規追加処理)
.Update
Else
.Find "(患者ID = " & ID & ") AND (患者氏名 = '" & Name & "') AND (性別 = " & Sex & ") AND (生年月日 = #" & Bouth & "#)" , , ,1
If .EOF Then
MsgBox "エラー"
Else
(T_画像情報への追加処理)
End If
End If
End With
なお、2度目のFindメソッドには、第4引数に"1"を指定するのを忘れないように。
No.4
- 回答日時:
訂正。
> イミディエイトウィンドウに出力されている内容をコピペしてください。
↓
イミディエイトウィンドウに出力されている内容を「全部」コピペしてください。
(「」内の漢字2文字に注意)
No.3
- 回答日時:
> Debug.Print sqlName
> MsgBox sqlName
↑ここのところはどうなってるの?
イミディエイトウィンドウに出力されている内容をコピペしてください。
(コピーは<Ctrl> + <C>キーで、貼り付けは<Ctrl> + <P>キーでできます)
手取り足取り訊かれなくても、必要な情報は最初から出しましょう。
※※※ 全然読んでないようなので、念のため再掲 ※※※
[ 技術系メーリングリストで質問するときのパターン・ランゲージ ]
http://www.hyuki.com/writing/techask.html
参考URL:http://www.hyuki.com/writing/techask.html
この回答への補足
処理する方向自体が違う気がしてきましたので
ちょっと説明します すいませんでした。
患者IDで検索して、同じ患者IDが見つかったとします。
その次の処理は、その見つかった患者の患者氏名、性別、誕生日を調べなくてはいけませんよね。
そうすると、またFindで患者氏名など検索する必要が無くなってきます。
私のやりたい処理は、同じ患者IDが見つかった時にその他のフィールドのデータも取得するという事です。
話が振り出しに戻ってしまいましたが、すいませんでした。
No.1
- 回答日時:
・VBのバージョンは2.0?それとも10.0?
・OSはRedHat?それともMacOS?
・rsはDAOですか?ADOですか?
[ 技術系メーリングリストで質問するときのパターン・ランゲージ ]
http://www.hyuki.com/writing/techask.html
[ Error Code ]
http://java-house.jp/ml/archive/j-h-b/007317.htm …
> sqlName = "患者氏名 =" & Name
> rs.Find sqlName
> というコードを追加するとエラーがでてしまいます・・
どんなエラーですか?
On Error Resume Next
sqlName = "患者氏名 =" & Name
Debug.Print sqlName
MsgBox sqlName
rs.Find sqlName
If Err.Number <> 0 Then
Debug.Print "実行時エラー " & CStr(Err.Number) & ": " & Err.Description
MsgBox "実行時エラー " & CStr(Err.Number) & ": " & vbCrLf & Err.Description
End If
↑
このようにしたらどうなりますか?
参考URL:http://java-house.jp/ml/archive/j-h-b/007317.html#body,http://www.hyuki.com/writing/techask.html
この回答への補足
Access2000とWindows2000を使用している環境です。
だからVBAになります。
rsはADOです。
早速 試してみたのですが、
実行時エラー3001:
引数が間違った型、または許容範囲外であるか、競合しています。
とのエラーがでます。
それは上記のコードを使用した際も、まったく同じです。
デバッグすると、 rs.Find sqlNameの所がエラーになります。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
UserForm1.Showでエラーになり...
-
【VBA】ワークブックを開く時に...
-
String""から型'Double'への変...
-
VBAでfunctionを利用しようとし...
-
【Access】Excelインポート時に...
-
マクロで"#N/A"のエラー行を削...
-
お助けください!VBAのファイル...
-
mailstorehomeのエクスポートで...
-
文字列内で括弧を使うには
-
ACCESS VBAのSplit()関数の使用...
-
ASPでこんなエラーが出たんです...
-
実行時エラー'-2147467259(8000...
-
VBスクリプトでIEの404 not fou...
-
エクセル関数式=ABSで#VALUE!...
-
VBAで時間(00:00形式)を積算...
-
ACCESSで値を代入できないとは?
-
VB.net 重複チェックがしたいです
-
On ErrorでエラーNoが0
-
VB2010でデータグリッドビュー...
-
数式は残し値をクリアするマク...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
UserForm1.Showでエラーになり...
-
String""から型'Double'への変...
-
【VBA】ワークブックを開く時に...
-
お助けください!VBAのファイル...
-
VBAでfunctionを利用しようとし...
-
On ErrorでエラーNoが0
-
VBA データ(特定値)のある最...
-
インポート時のエラー「データ...
-
マクロで"#N/A"のエラー行を削...
-
VBAのリストボックスで、横スク...
-
ApplicationとWorksheetFunctio...
-
Excel vbaについての質問
-
「実行時エラー '3167' レコー...
-
実行時エラー 438 の解決策をお...
-
【VBAエラー】Nextに対するFor...
-
ACCESSで値を代入できないとは?
-
Filter関数を用いた結果、何も...
-
文字列内で括弧を使うには
-
【VB.NET】 パワポ操作を非表示で
-
レコード登録時に「演算子があ...
おすすめ情報