'テーブルの作成 zzDB_Con.Execute "CREATE TABLE テーブル名(ID Long,日付 Date,コード String(20),金額 Currency)"
接続しているデータベースにテーブルを新規作成するには、SQL文のCREATE TABLE文を使用します
この構文を実行することで、レコードを収めるためのテーブルが作成されます
このコードはデータベースへの接続が完了している必要があります
接続に関しては以下の記事を確認してください
テーブルとはExcelでいうシートのようなもので、これが無いとデータベースにレコードを登録することが出来ません
また、1度作成してしまえばそこにレコードを保存していくので処理中に頻繁に出てくるような構文ではありません
また接続しているデータベースにSQLを実行するにはExecuteメソッドを利用します
引数にSQL文を文字列で指定します
Accessの無いPCであれば実際にデータベースの中身を確認できないので、このコードを実行しても何が起きているのか分かりませんが、再度実行してみてください
実行時エラーが発生し、すでに存在していることが分かります
とりあえずはそれで確認は十分です
コード解説
zzDB_Con.Execute "CREATE TABLE テーブル名(ID Long,日付 Date,コード String(20),金額 Currency)"
CREATE TABLE文にはまず、テーブル名を指定します
ここでは「テーブル名」という名称が指定されています
テーブル名という名前のテーブルを作成する、という意味になります
次に半角カッコで挟む形で作成するフィールドの指定を行います
フィールドとはExcelでいう列のことになります
AccessデータベースはExcelとは違い列は作成しなければいけません
またExcelと大きく違うのがフィールドには入力できるデータの型を指定する必要があることです
Excelはどんなものでも入力できるセルがありますが、どんなものでも入るのは便利な反面、何が入力されているかをいちいち判定する必要があり、ユーザーの入力ミスも往々にして発生します
そういったことを回避するためにデータベースでは事前に入力できる制限を設けることが出来ます
制約というものになりますが、今回は型の紹介だけ行っておきます
(ID Long,日付 Date,コード String(20),金額 Currency)"
まず、IDという名称のフィールドを作成します
このフィールドの型はLong型なので整数型になります
実際AccessデータベースにLong型は存在しません
ですが、自動的に同意義の型に変換してくれているのであまり気にしなくても良いです
さすが同じOfficeソフトです
つまり、このフィールドは整数値のみが利用可能で文字列は登録できないことになります
次に日付というフィールド名でDate型(日付型)を作成しています
日付型なので時間等も含めて登録することが可能です
次にコードという名称で文字列型のフィールドを作成しています
フィールドを複数作成する場合は、フィールドごとに半角カンマで区切ります
これは無くても構わないのですが、(20)という文字が追記されています
これは文字数制限になります
これ以上の文字列を登録しても切り捨てられて、この文字数で登録されます
最後にCurrency型(金額型)の金額というフィールドが作成されます
金額型なのでお金のデータを登録する際に利用します
ここら辺の型の細かいところは、変数に関する記事を確認してください
ExcelVBAで使用できる変数の型はほぼ利用できます
Double型、Boolean型なども利用可能です
ここまで来たらようやくレコードの登録が可能になります
その際にテーブル名とフィールド名を使用しますので、Accessの無い方は分からなくならないようにしてください