かなり大きなAccess 2007テーブルを更新する必要がありますExcel 2007からExcel VBAを使用して(18フィールド)。問題は、行内の多くのフィールドに値がないことがあり、SQLステートメントを変更するためのアルゴリズムを作成するのは膨大なことです。つまり、行ごとにUPDATEステートメントに含まれるフィールドを決定します。空のExcelセルがSQL更新ステートメントに含まれるように処理される可能性はありますか?また、アクセスデータベースのターゲットフィールドには、日付フィールドと数値があります。これらもどのように処理できますか。
私は、セルが空かどうかをチェックし、次のようにnullまたは空の値を代入してみました。
variablename = Null or Empty or "" or 0 if an integer
例えば
If Not IsEmpty(ws.Cells(i, 7).value) Then
dteEndDate = DateValue(ws.Cells(i, 7).value)
Else
dteEndDate = Empty
End If
回答:
回答№1は0に対処するための別の回避策を見つけたこの特定の表UPDATEを使用する代わりに、テーブル内の主キーについて関連するテーブルでクエリを実行し、それらを更新する行と照合して、更新されないレコードが2つだけであることを確認しました。そのため、Accessテーブルの名前を変更し、関係を削除しました。次に、ExcelワークシートをAccessに新しいテーブルとしてインポートしましたが、関連するテーブルの以前の名前を付けました。それから関係を追加し、ワークシートにない2つのレコードを挿入するためにSQLを使用しました