Access VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


82 / 2272 ツリー ←次へ | 前へ→

【13071】テーブル作成クエリのデータ型変換 ばかすけ 16/9/30(金) 12:01 質問[未読]
【13072】Re:テーブル作成クエリのデータ型変換 hatena 16/9/30(金) 18:18 回答[未読]
【13075】Re:テーブル作成クエリのデータ型変換 ばかすけ 16/10/3(月) 18:28 お礼[未読]
【13085】Re:テーブル作成クエリのデータ型変換 hatena 16/10/12(水) 3:03 発言[未読]

【13071】テーブル作成クエリのデータ型変換
質問  ばかすけ  - 16/9/30(金) 12:01 -

引用なし
パスワード
   こんにちは、よろしくお願いします

テーブル作成クエリでテーブルを作成し、一部のフィールドのデータ型を変換したいと思っています

まず、テーブル作成クエリでテーブルAを作成し、
必死でHPなどで調べて下記コードをフォームの開く時イベントに書きました
ですがのっけから"ALTER TABLEステートメントの構文エラーです"とエラーが出てしまいます

Private Sub Form_Load()
CurrentDb.Execute "ALTER TABLE テーブルA ALTER COLUMN あああ DATE(20)"
CurrentDb.Execute "ALTER TABLE テーブルA ALTER COLUMN いいい TEXT(20)"
CurrentDb.Execute "ALTER TABLE テーブルA ALTER COLUMN フリガナ TEXT(30)"
CurrentDb.Execute "ALTER TABLE テーブルA ALTER COLUMN ううう Bit"
CurrentDb.Execute "ALTER TABLE テーブルA ALTER COLUMN えええ Bit"
CurrentDb.Execute "ALTER TABLE テーブルA ALTER COLUMN おおお Bit"
CurrentDb.Execute "ALTER TABLE テーブルA ALTER COLUMN かかか TEXT(10)"

End Sub

どこがおかしいかご教示お願いします

【13072】Re:テーブル作成クエリのデータ型変換
回答  hatena  - 16/9/30(金) 18:18 -

引用なし
パスワード
   フィールド「あああ」を日付/時刻型にしたいなら、

CurrentDb.Execute "ALTER TABLE テーブルA ALTER COLUMN あああ DATE"

テキスト型でフィールドサイズ20にしたいなら、

CurrentDb.Execute "ALTER TABLE テーブルA ALTER COLUMN あああ TEXT(20)"


ところで、後学のためにお聞きしたいのですが、
フォームを開く度に、フィールド定義を変更するって、どういう用途のフォームなんでしょうか。
ウィザード的なものを自前で作成しているということですかぁ

【13075】Re:テーブル作成クエリのデータ型変換
お礼  ばかすけ  - 16/10/3(月) 18:28 -

引用なし
パスワード
   hatenaさま
ご回答ありがとうございます
ご教示いただいた通りに直したらできました。
基本的な事を間違えてたようですね
たすかりました

ご質問の件ですが、
説明が難しいのですが、
クエリAに直接書き込めないのでテーブル作成クエリでテーブルAに変換していたのですが、
クエリAには空白フィールド(Null AS フリガナ、等) を作っています
何故空白フィールドを作っているかというと、出来た空白フィールドにいろんなデータを手入力するためです
何故一番最初にデータ入力する(クエリAの元となる)テーブルに情報を入力しないかというと、すべてのレコードに必要な情報ではないからで、むしろいらない場合の方が多いので、最初の入力フォームにたくさんコントロールを置きたくないためです

それで、クエリAからテーブル作成クエリで入力用テーブルを作成すると、空白フィールドがバイナリ型になってしまい、それではまずいので
後から変更できたらなと思いましたのです。
わかりにくかったらすみません

【13085】Re:テーブル作成クエリのデータ型変換
発言  hatena  - 16/10/12(水) 3:03 -

引用なし
パスワード
   >ご質問の件ですが、
>説明が難しいのですが、
>クエリAに直接書き込めないのでテーブル作成クエリでテーブルAに変換していたのですが、
>クエリAには空白フィールド(Null AS フリガナ、等) を作っています
>何故空白フィールドを作っているかというと、出来た空白フィールドにいろんなデータを手入力するためです
>何故一番最初にデータ入力する(クエリAの元となる)テーブルに情報を入力しないかというと、すべてのレコードに必要な情報ではないからで、むしろいらない場合の方が多いので、最初の入力フォームにたくさんコントロールを置きたくないためです

テーブルにあるフィールドをすべてフォーム上に配置しなければならないということはないので、必用なフィールドのみ配置すればいいのでは。


テーブルに未入力のフィールドが多く存在するのが嫌だという場合は、
入力必須のフィールドのテーブルと、入力がまれにしか無いフィールドのテーブルの2つに分けて、
一対一関係にするという方法もありますが、
それにしても、最初に一回だけ作成すればいいだけで、
運用中に何度もテーブル作成クエリを実行する必用はないと思いますが。

一対一関係のテーブル設計 - hatena chips
ht tp://hatenachips.blog34.fc2.com/blog-entry-29.html

82 / 2272 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
1078186
(SS)C-BOARD v3.8 is Free