同じファイル内にあるデータベースのあるテーブルから情報を取り出したいのです。 アクセスと検出には成功したのですが、データがないものに対しては新規で登録したいのに検出の時点でエラーになってしまいます・・・
エラーを出さずに、新規として扱うにはどうすればいいですか??
ご回答お願いします!!
”検出”というのはどういう処理をされたのか、また
データが無いという状態が、「テーブルにレコードが無い」状態なのか
「フィールドにデータが無い」という状態なのかもよく分からないので
答えようが無いです・・・
エラーがおきた個所のソースと、そのときのテーブルの状態、
「新規として扱う」っていうのがどういう意味か
(新しくレコードを挿入したいのかな?)
あと、データベースってAccessですよね?
詳細を記述いたしませんで申し訳ございません><;
えーアクセスです!!そしてテーブルに指定コードのレコードがなかった場合新規として扱いたいのです!!
存在しているものに関しましてはとりだすことができるのですが、存在しないものをどう判別していいのかが分かりません。
新たな不明点なんですが、中身が空白だったら空白を登録し、また検出の際も空白を取り出すことはできないのですか?? 現在レコードないに空白がある場合データが取り出せません・・・
ご回答願います。
検出というのは条件に一致するレコードを検索するという意味であってますか?
で、そのとき条件に一致するレコードが無かった場合に新規として扱うっていうことですかねえ。
検索方法によって判定処理も変わってきます。DAOを使っていると想定して・・・
1、SQL文で条件を指定してレコードセットをオープンした場合
条件に一致するレコードが無ければ、レコード数が0となります。
レコードセットのBOFプロパティとEOFプロパティが両方ともTRUEであれば、
カレントレコードが存在しないということで、判定できます。
2、テーブルをオープンしてから検索を行った場合。
SeekやFindFirstなどを使って検索したのであれば、
条件に一致するレコードが無い場合、レコードセットオブジェクトの NoMatchプロパティがTRUEになります。
次に、条件に一致するレコードがあり、値を取り出そうとした場合に、フィールドに値が入っていないとう場合
If objRecordSet.Fields("aaa").Value = Null Then
途中で送信してしまった^^;
続き・・・
If objRecordSet.Fields("aaa").Value = Null Then
とフィールドの値がNullであれば中身が無いってことになります。
同様に、すでにフィールドに値が入っていて、それを削除したい(空にしたい)のであればNullを入れます
objRecordSet.Fields("aaa").Value = Null
追記:
「また検出の際も空白を取り出すことはできないのですか?? 」
っていう質問が、あるフィールドが空白であるレコードを検索したい
とう意味であるなら、SQL文で
WHERE ”フィールド名” IS NOT NULL
という条件で検索できます。
レスおくれましたがその間に教えていただいたものを試行錯誤して解決いたしました!!
ありがとうございました☆
ツイート | ![]() |