
No.3ベストアンサー
- 回答日時:
恐らくですね、Tetralemmaさんがおっしゃっているように、
データソースがないか、SQLが悪いかのどちらかだと思います。
そこで、確認なんですが、
Dim Table As DataTable = DirectCast(DataGridView2.DataSource, DataTable)
を
Dim Table As DataTable = TryCast(DataGridView2.DataSource, DataTable)
に変更して頂いて、その時に、変数「Table」には、Nothingが
代入されていないか確認してみてください。
また、もう1つの確認事項として、
SQLCm.CommandText = SQL
の部分で、ブレークポイントを止めて、変数「SQL」に設定されている
値をコピーし、そのコピーしたSQLをAccess側で流した(動かした)
場合、エラーになるか?ならないか?を確認してみてください。
#変数SQLの値を見るには、変数「SQL」を選択して、右Clickし、
「ウォッチ式の追加」を選択します。
すると、「ウォッチ」というエリアに変数「SQL」の値が
どのように設定されているか見ることができます。
・もし変数「Table」が、Nothingであれば、データソースが
正しく設定されていないです。
・変数「Table」が、Nothing以外が代入されていて、
SQL変数に代入されているSQL文をAccess側のクエリで
そのまま実行した場合、エラーになるようであれば、
SQL文の構文ミスがありますので、見直してみてください。
上記をTable変数、SQL変数に問題がないようであれば、別の問題が
考えられますので、その場合は、別途ご相談頂けたらと思います。
No.2
- 回答日時:
DataGridViewに「データソース」が設定されていないのでしょう。
DataGridViewのプロパティでデータソースを選択し、プロジェクトデータソースを設定してください。
No.1
- 回答日時:
VBのバージョンは何をご利用でしょうか?
また、DataGridViewという言い方をしているので、
VB.NET2003か2005(2008ってことはまだないと思いますが)の
Windows Formアプリかと思いますが、バージョンによって
イベントが若干違うので、ご利用バージョンを教えて下さい。
また、このエラーが発生した箇所のソースコードを
可能な範囲で構いませんので、掲載して頂けませんか?
よろしくお願いします。
この回答への補足
バージョンは2005です。
よろしくお願いします。
Private Sub cmdTekiMi_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdTekiMi.Click
Dim Cn As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Path2)
Dim SQLCm As OleDbCommand = Cn.CreateCommand
Dim Table As DataTable = DirectCast(DataGridView2.DataSource, DataTable)
For Each Row As DataRow In Table.Rows(DataRowState.Modified)
Dim SQL As String = ""
Select Case Row.RowState
Case DataRowState.Modified
SQL = "UPDATE テーブル1 SET "
SQL &= " ID= " & Row("ID") & ", "
SQL &= " 500 = '" & Row("500") & "', "
SQL &= " 900 = '" & Row("900") & "' ,"
SQL &= " 1300 = '" & Row("1300") & "', "
SQL &= " 1700 = '" & Row("1700") & "', "
SQL &= " 2100 = '" & Row("2100") & "', "
SQL &= " 2400 = '" & Row("2400") & "' "
SQL &= " WHERE "
SQL &= " ID = " & Row("ID",DataRowVersion.Original)
Case Else
Continue For
End Select
SQLCm.CommandText = SQL
Cn.Open()
SQLCm.ExecuteNonQuery()
Cn.Close()
Next
Table.Dispose()
SQLCm.Dispose()
Cn.Dispose()
End Sub
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(データベース) 更新クエリをリンクデータベーステーブルに実行し実行時エラー3362固有インデックスに重複する値が含ま 1 2022/09/21 11:44
- Access(アクセス) アクセスの更新クエリでカレントレコードのみ更新したい 1 2022/06/02 23:32
- Access(アクセス) access,vbaでフォルダ内のファイルをテーブルにインポート、ファイル名もフィールドに追加したい 1 2022/08/31 11:11
- その他(コンピューター・テクノロジー) 【Tableau Desktop】文字列から8桁の数字を日付型(yyyyMMdd)として取得 1 2023/07/31 10:17
- Visual Basic(VBA) vbaエクセルマクロについて あるデータを作成し、デスクトップに.xlsx形式で保存するマクロを作成 6 2023/03/03 18:05
- Visual Basic(VBA) vbaエクセルマクロについて あるデータを作成し、デスクトップに.xlsx形式で保存するマクロを作成 2 2023/03/02 18:54
- その他(Microsoft Office) 会社PCのメールが更新されない 6 2023/07/17 23:19
- Windows 10 Windows Updateが動作しません 7 2022/08/12 16:26
- Access(アクセス) Accessのクエリの結果を、既存のエクセルに追加したい 2 2022/07/31 22:44
- その他(Microsoft Office) ピボットテーブルへの集計フィールド挿入 1 2023/02/26 11:33
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
マクロOn Error GoTo ErrLabel...
-
if関数の順番 iserrorが認識さ...
-
VBA 空白行の削除
-
VBAでfunctionを利用しようとし...
-
OpenOffice Basicで簡単な関数...
-
UserForm1.Showでエラーになり...
-
On Error GoTo でエラーが発生...
-
ApplicationとWorksheetFunctio...
-
現在、HP作成業者さんがつく...
-
ExcelにSQLの結果を表示
-
WindowsのプロダクトIDを取得す...
-
検索Find処理を2重、3重とす...
-
インポート時のエラー「データ...
-
EnableWindow()後のGetLastError()
-
オブジェクト型の変数にフォー...
-
VBA データ(特定値)のある最...
-
実行時エラー'1004'の詳細と回...
-
VBA変数をFunction.VLookupの戻...
-
条件式について
-
エクセルVBAの二重ループについて
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
UserForm1.Showでエラーになり...
-
お助けください!VBAのファイル...
-
VBAでfunctionを利用しようとし...
-
String""から型'Double'への変...
-
【VBA】ワークブックを開く時に...
-
文字列内で括弧を使うには
-
マクロで"#N/A"のエラー行を削...
-
Excel vbaについての質問
-
VBA データ(特定値)のある最...
-
On ErrorでエラーNoが0
-
ApplicationとWorksheetFunctio...
-
【Access】Excelインポート時に...
-
インポート時のエラー「データ...
-
実行時エラー 438 の解決策をお...
-
オブジェクト型の変数にフォー...
-
.VBSだとADODBのプロバイダが見...
-
実行時エラー'-2147467259(8000...
-
【VB.NET】 パワポ操作を非表示で
-
フランスの生年月日(jj/mm/aaaa)
-
【VBAエラー】Nextに対するFor...
おすすめ情報