下記コードにてdataadapterにてインサートを行っております。
下記コードですとインサートしても戻り値が「0」されなくても「0」です。
インサートしたとき、戻り値「1」が返ってきて欲しいです。
どこがまちがってますでしょうか。
'変数の宣言
Dim returnValue As Integer
Dim totalValue As Integer
'NonQueryTableAdapの宣言
Dim NonQueryTableAdapter As CreateIDDataSetTableAdapters.TableTableAdapter
NonQueryTableAdapter = New CreateIDDataSetTableAdapters.TableTableAdapter()
’DBに存在しなければインサートする
For Each dr As DataRow In CreateIDDataSet.Tables(0).Rows
Me.TableTableAdapter.InsertQuery(dr("date"), dr("IDcode"))
'インサートクエリにて返ってきた値を数値化する
returnValue = NonQueryTableAdapter.InsertQuery(dr("date"), dr("IDcode"))
Next
インサートクエリ
INSERT INTO [dbo].[Table] ([date], [IDcode])
SELECT @date, @IDcode
WHERE NOT EXISTS(SELECT * FROM [dbo].[Table] WHERE [IDcode] = @IDcode);
ご教示お願いします。
No.3ベストアンサー
- 回答日時:
以前にも回答していますが、InsertQuery()(内部ではExecuteNonQuery())は、戻り値として、影響を及ぼしたレコード件数を返します。
1が実行できた、0が実行に失敗した、ようなフラグではありません。
INSERT INTO SELECT ~ というSQLを発行していれば、戻り値は1かもしれませんし、2かもしれません。
INSERTされたレコード数なのですから。
今回のようなSQLでは、1件登録するかしないか、しかないので、1か0しか返ってこないだけです。
登録されたかされてないかを確認したいなら、Me.TableTableAdapter. InrertQuery()の戻り値が0かそうでないかです。
No.1
- 回答日時:
Me.TableTableAdapter.InrertQuery()でレコードが登録されれば、NonQueryTableAdapter.InsertQuery()ではレコード登録されないので0が返ってきて当たり前ですよね。
NonQueryTableAdapterなんてのは全くいらなくて、Me.TableTableAdapter. InrertQuery()の戻り値を取得すればいいでしょう。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) ①ExcelVBAでカレンダーを作り、別のユザーフォームで日付を入力したいのですがエラーになります。 1 2023/02/17 18:39
- Excel(エクセル) VBA フォルダ見える化のコードについて 2 2023/06/19 15:04
- Access(アクセス) ExcelのVBAコードについて教えてください。 4 2023/01/20 09:44
- Visual Basic(VBA) ExcelVBAに関する質問 3 2023/02/17 10:47
- Visual Basic(VBA) このVBAでExcelアプリケーションを作成は必要ですか? 3 2023/07/19 21:13
- Visual Basic(VBA) 【前回の続き続きです、ご教示ください】VBAの記述方法がわかりません。 2 2022/08/24 20:49
- Visual Basic(VBA) 【ご教示ください】VBAの記述方法がわかりません。 2 2022/08/12 21:28
- Visual Basic(VBA) VBAで時間(00:00形式)を積算(足し算)したい 1 2022/11/15 17:04
- Visual Basic(VBA) batからexeを実行し戻り値を受け取る EXEの実行内容の結果によって、戻り値を0か1かで返したい 1 2023/07/04 16:40
- Access(アクセス) 実行時エラー3131 FROM 句の構文エラーです について 7 2022/06/13 15:45
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ファイル書込みで一行もしくは...
-
レコードが存在しなかった場合
-
DataGridViewの内容をDBに反映...
-
差し込み印刷のレコード数について
-
ADO VBA 実行時エラー3021
-
レコードセット(ADO.Recordset)...
-
ACCESSで大量の更新を行うと「...
-
[VBA] ADOの Clone と AddNew
-
VB6.0のIsNull関数に相当するもの
-
VB6.0でのエクセル行削除
-
DataGridViewの、選択されてい...
-
DataGridViewにてセル以外をク...
-
エラー番号=5 制約を有効にで...
-
Accessでレコードの更新を任意...
-
ADODCとデータグリッドを連動さ...
-
サブフォームに新規レコードを...
-
Access フォーム 選択されてい...
-
カレントレコードが無い事を判...
-
JSPのNULLレコード表示について...
-
固有レコード識別子の選択とは
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ADO VBA 実行時エラー3021
-
ファイル書込みで一行もしくは...
-
JSPのNULLレコード表示について...
-
レコードが存在しなかった場合
-
DataGridViewの、選択されてい...
-
カレントレコードが無い事を判...
-
DataGridViewの内容をDBに反映...
-
Access を×ボタンで閉じ...
-
アクセスでレポートの1印刷内...
-
ヘッダレコードとトレーラレコ...
-
Access でレコードセレクタが押...
-
レコードセット(ADO.Recordset)...
-
ACCESSで大量の更新を行うと「...
-
差し込み印刷のレコード数について
-
DataGridViewにてセル以外をク...
-
サブレンジ分割されたNDB(富士...
-
Line Inputで文字化け(助けて...
-
固有レコード識別子の選択とは
-
[VBA] ADOの Clone と AddNew
-
ワードの差込印刷で教えて下さ...
おすすめ情報
Me.TableTableAdapter. InrertQuery()の戻り値はどのように取得したらよいのでしょうか???
てっきりデータアダプターインサートされた際に登録されたら1、登録されなかったら0のような戻り値がかえってくると思っておりました。
このような戻り値は判定できないのでしょうか?