課題でVBからデータベースの操作についてのプログラムを作成しているのですが、どうしてもエラーが出るのでお願いします。
フォームロード時に下の処理をしているのですが、
Dim sql As String
Dim cm As OleDb.OleDbCommand
Dim rd As OleDb.OleDbDataReader
sql = "select max(番号) as 数 from アドレス帳"
Try
cm = New OleDb.OleDbCommand(sql, cn)
rd = cm.ExecuteReader
Catch ex As Exception
MessageBox.Show(ex.Message, "Access Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
rd.Close()
Exit Sub
End Try
If rd.Read Then
frmMenu.num = rd.Item("数")
frmMenu.num += 1
End If
frmMenu.num += 1
txtnum.Text = frmMenu.nu
この部分なんですが、
If rd.Read Then
frmMenu.num = rd.Item("数")
frmMenu.num += 1
End If
frmMenu.num += 1
txtnum.Text = frmMenu.nu
・frmMenu.num はInteger型の変数です。初期値に0が入っています。
この部分では、データが読めた場合はデータベースの方から
数を引っ張ってきて、+1をして、読めない(データがない)
場合には+1だけをしたいのですが、データがある時は正常に
動くのですが、データがない時に動かそうとすると、
型 'DBNull' から型 'Integer' への変換は無効です
のエラーがでて困っています。
これは、読めたか読めなかったか判定出来ていないということなのでしょうか?
No.1ベストアンサー
- 回答日時:
rd.Item("数")が Nullだからでしょうね
If rd.Read andalso Not IsDBNull(rd.Item("数")) Then
でどうでしょうか。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) VBAが止まります。 3 2022/08/31 14:09
- Visual Basic(VBA) VBAでoutlook365が起動しません。 4 2022/08/25 13:31
- Excel(エクセル) マクロでテキストファイルを読み込んだ際の最終セルにデータと改行が含まれる問題の改善方法 2 2022/03/25 16:50
- Visual Basic(VBA) VBA Userformで一部別シートに転記がしたいのですが 2 2023/05/24 13:08
- Visual Basic(VBA) VBAのユーザーフォームのテキストボックスに入力制限をしたい 6 2022/11/15 08:28
- Excel(エクセル) VBA フォルダ見える化のコードについて 2 2023/06/19 15:04
- Visual Basic(VBA) 【前回の続き続きです、ご教示ください】VBAの記述方法がわかりません。 2 2022/08/24 20:49
- Visual Basic(VBA) access count数を変数に格納 2 2022/03/30 19:21
- Visual Basic(VBA) いつもお世話になっております、VBAで教えて頂きたいのですが 2 2022/05/05 22:20
- C言語・C++・C# c言語の問題の説明、各所ごとに 5 2023/07/26 11:03
このQ&Aを見た人はこんなQ&Aも見ています
-
性格の違いは生まれた順番で決まる?長男長女・中間子・末っ子・一人っ子の性格の傾向
同じ環境で生まれ育っても、生まれ順で性格は違うものなのだろうか。家庭教育研究家の田宮由美さんに教えてもらった。
-
String"から型'Double'への変換は無効です。 とエラーが出ます。
Visual Basic(VBA)
-
演算子が DBnull 及び integerに対して有効でない
Visual Basic(VBA)
-
Designer.vbは直接コードをいじってはだめ?
Visual Basic(VBA)
-
-
4
”パラメータ値を TextBox から String に変換できません
SQL Server
-
5
ページ数を求めたい
Visual Basic(VBA)
-
6
値を返さないコード パス
Visual Basic(VBA)
-
7
VB.NETで DataRow()を利用して、値からコードを取得したい。
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VB.NET DataReaderが開かれている
-
dbからデータをとりだす際、sql...
-
Formのデータが欠落することがある
-
ボタンが活性化の場合とは、ボ...
-
JSPからJSPへ情報を渡せる?
-
グローバルIPアドレスの変更タ...
-
フォーム上で押されたボタンに...
-
「<c:forEach タグが終了し...
-
jspからServletを呼び、元のjsp...
-
三菱GOTの画面切り替えについて
-
ActiveWorkbook.Pathの一つ下の...
-
EXCEL VBAで、EXCELの入力規則...
-
ServletからServletへの値渡し
-
リクエストに応じたselectedの...
-
jspでjavascript関数へ引数を渡...
-
int型の内容をbyteの配列にコピー
-
フォームで同じ複数のnameで違...
-
腕時計の時報をならないように...
-
j-axis 腕時計のアラーム止めたい
-
親子画面での値の受け渡し方法
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VB.NET DataReaderが開かれている
-
Formのデータが欠落することがある
-
JavaScriptとACCESSデータベー...
-
DBNULLについて
-
「XML over HTTP」「非同期HTTP...
-
C言語からデータベースにアクセス
-
login,logoutのできるページ
-
struts 2つの選択肢(selec...
-
dbからデータをとりだす際、sql...
-
これはXSS?
-
ruby on railsでDataBaseのデー...
-
JDBCでaccessから取得したデー...
-
DBから取得した値の変換方法
-
ドラッグ&ドロップによるDB更...
-
データベースを扱うアプリにふ...
-
フォーム上で押されたボタンに...
-
「<c:forEach タグが終了し...
-
リクエストに応じたselectedの...
-
jspからServletを呼び、元のjsp...
-
Java-jspの画面入力値保持について
おすすめ情報