回答編集履歴
2
追記
answer
CHANGED
@@ -14,4 +14,24 @@
|
|
14
14
|
|
15
15
|
```vba
|
16
16
|
DoCmd.RunSQL "CREATE TABLE Sample1(F1 INT, F2 DATE, F3 INT);"
|
17
|
-
```
|
17
|
+
```
|
18
|
+
|
19
|
+
さらに追記
|
20
|
+
---
|
21
|
+
DoCmd系の命令はUI操作になります。ただ、直接テーブルを作成するコマンドはないので、DoCmd.RunSQL でUIからSQLを実行しています。
|
22
|
+
簡単に記述できるのは、SQLだからです。
|
23
|
+
|
24
|
+
DAO経由でSQLを実行することも可能です。下記になります(再描画が必用になります)。
|
25
|
+
|
26
|
+
CurrentDB.Execute "CREATE TABLE Sample1(F1 INT, F2 DATE, F3 INT);"
|
27
|
+
Application.RefreshDatabaseWindow
|
28
|
+
|
29
|
+
SQLの場合、テーブルデザインの変更は [ALTER TABLE ステートメント](https://msdn.microsoft.com/library/78e6c92c-e88c-e55f-6b89-435360c166a6%28office.15%29.aspx) や [CREATE INDEX ステートメント](https://msdn.microsoft.com/library/c5919ef4-a08d-df06-7078-5331adbcb45c%28office.15%29.aspx) でできます。
|
30
|
+
|
31
|
+
[Access SQL を使用してテーブルの設計を変更する](https://msdn.microsoft.com/ja-jp/vba/access-vba/articles/modify-a-table-s-design-using-access-sql)
|
32
|
+
|
33
|
+
ただし、SQLでは規定されていない、Accessのテーブルに独自に拡張されたプロパティは設定することはできません。
|
34
|
+
例えば、書式プロパティなどは、SQLではできないので、DAO(or ADOX)のオブジェクトを使って設定する必用があります。
|
35
|
+
`Set prp = fld.CreateProperty("Format", dbText, "ggge/mm/dd")`というように。
|
36
|
+
|
37
|
+
結局、書式とか定形入力とかのプロパティを設定したい場合、DAO(ADOX)ですることになりますね。
|
1
サンプルコードの追加
answer
CHANGED
@@ -5,4 +5,13 @@
|
|
5
5
|
はい、そうだと思います。
|
6
6
|
DAOでの操作と、AccessアプリケーションのUIでの操作は、別系統ののものですので、DAOでの操作をAccessのUIに反映させるには、再読込、再描画等を実行して同期させる必用があります。
|
7
7
|
|
8
|
-
DAOでの操作はAccessがなくてもExcelやその他のアプリからでも可能ということからも、DAO と Accessアプリケーションは別物ということが分かりますね。
|
8
|
+
DAOでの操作はAccessがなくてもExcelやその他のアプリからでも可能ということからも、DAO と Accessアプリケーションは別物ということが分かりますね。
|
9
|
+
|
10
|
+
追記
|
11
|
+
---
|
12
|
+
AccessアプリケーションのUIから、今回と同じテーブルを作成するなら下記のコードになります。
|
13
|
+
この場合、実行後すぐにナビゲーションウィンドウにテーブルが表示されます。
|
14
|
+
|
15
|
+
```vba
|
16
|
+
DoCmd.RunSQL "CREATE TABLE Sample1(F1 INT, F2 DATE, F3 INT);"
|
17
|
+
```
|