よろしくお願いします。
タイトルのとおりなのですが
SQLで「...from xx(テーブル名)」もしくは「select xx(列名)...」として値を取得しようとしたときにテーブル、列が存在しない場合への対処はどのように処理するのが一般的なのでしょうか?
On Error Resume Next
Set rec = ado.Execute(query)
target = rec.Fields(field).value
if isnull(target) = True then
上記のIf分では値が入っていない場合の処理はできるのですが、テーブル、列が存在しない場合はチェックできませんでした。
No.2ベストアンサー
- 回答日時:
テーブル名や列名を間違えるというのは基本的にバグなので、救済
する必要はないと思います。
どうしてもエラーハンドリングする場合は以下の通り
On Error Resume Next
Set rec = ado.Execute(query)
If Err.Number = 0 Then
target = rec.Fields(field).Value
If Err.Number = 0 Then
If IsNull(target) = True then
~
End If
End If
rec.Close
End If
If Err.Number <> 0 Then
MsgBox Err.Description, vbCritical, "エラー"
End If
エラーの起こりそうな処理の後で、Err.Numberを調べます。
これが0の場合に次のステップへ進むようにしましょう。
http://msdn.microsoft.com/ja-jp/library/cc392399 …
ありがとうございます。
> If Err.Number = 0 Then
このコードで思い通りにできました。
おっしゃる通り、テーブル名・列名が取得できないような事態はまず考えられないのですが、せっかくなのでエラーチェックは残したいと思います。
No.1
- 回答日時:
以下の方法で、出来ませんか。
On Error Resume Next
Set rec = ado.Execute(query)
Do Until rec.EOF
'レーコードが存在する時の処理
target = rec.Fields(field).Value
If IsNull(target) = True Then
'
End If
rec.MoveNext
Loop
rec.Close
'レーコードが存在しない時の処理
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- PHP 重複を防ぐ記述について教えて下さい。 3 2023/04/03 14:35
- Visual Basic(VBA) VBAのトグルボタンでのマクロについて質問です 3 2022/10/10 17:23
- PHP クエリObjectをforeachで回す時に、次のレコードへ移動せずに次のレコードを取得したい 2 2022/07/28 15:29
- Visual Basic(VBA) 【再々投稿】VBAのプログラムで動作しなくて困っています 8 2022/10/14 09:06
- Visual Basic(VBA) Changeイベントで複数セルへの貼り付けおよび値削除時に1個目のセルのみエラーになる 3 2022/12/21 09:07
- Visual Basic(VBA) 【再投稿】VBAで動作しなくて困っています 2 2022/10/11 11:05
- Visual Basic(VBA) 【追加】ファイルを閉じてダイアログで保存した時だけ処理の実行をする 3 2022/03/23 15:43
- Access(アクセス) Access IF文でテーブルに存在しない場合の処理について 2 2022/10/10 18:09
- PostgreSQL 列が存在しないと言われる 2 2023/02/10 18:33
- Visual Basic(VBA) ExcelからAccessのテーブルに書き込む時に時間がかかる 1 2022/10/14 20:38
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
private subモジュールを他のモ...
-
【C#/Java?】try-catchでcatch...
-
マクロで、次のコードへ行く前...
-
特定のファイルを他のプロセス...
-
IF文に時間(何時から何時ま...
-
特定の名前のオートシェイプの...
-
シグナル 6(SIGABRT)とは?
-
Excelプロセスが消えない
-
Excel VBA セルの名前があるか...
-
順番に処理させたい
-
vbaのエラー対応(実行時エラー...
-
Word VBA。各マクロの間に待ち...
-
Pentium4とPentiumD、どちらが...
-
途中で処理を中断させたい (ア...
-
COBOL OCCURSで指定したデータ...
-
フォルダのアクセス権確認について
-
VB6にてネットワーク上にある共...
-
VB6のロストフォーカス時の処理...
-
VBAでBook読み込み時の非表示方...
-
【C#】Page_Loadさせない方法に...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【C#/Java?】try-catchでcatch...
-
IF文に時間(何時から何時ま...
-
private subモジュールを他のモ...
-
vbaのエラー対応(実行時エラー...
-
マクロで、次のコードへ行く前...
-
どう増強すべきか
-
特定の名前のオートシェイプの...
-
シグナル 6(SIGABRT)とは?
-
Excel VBA セルの名前があるか...
-
ExcelのVBAで、選択したファイ...
-
どうやってもFor文を抜けてしま...
-
シェルスクリプトでファイル内...
-
ドリブン??
-
特定のファイルを他のプロセス...
-
VB6にてネットワーク上にある共...
-
【VBA】エラー処理で別プロシー...
-
Functionで戻り値を複数返す方法
-
Word VBA。各マクロの間に待ち...
-
エクセル VBAで複数セル選択時...
-
VBA 複数の行を高速で削除する...
おすすめ情報