Microsoft Access ClubAccess超初心者対象ForumAccess初級者対象ForumAccess初・中級者対象ForumAccess VBA Tips ForumDAO、ADO、SQL Forum

     

No13571.テーブルの既定値を設定する

タイトルテーブルの既定値を設定する
記事No: 13571
投稿日: 2004/05/24(Mon) 00:22
投稿者: ちーちゃん
OS:WinXP
Access Version:AC2K
お世話になってます。
メール送信の有無をしたい為、ALTER TABLEを使ってT_Mailadressというテーブルに
Yes/No式の"Chk"という項目を追加しました。

ALTER TABLE T_Mailadress ADD COLUMN Chk YesNo[Yes/No];

このテーブルを元にフォームに反映させているのですが、
"Chk"という項目のDefaultの値を"-1"(つまり選択されている状態)に設定する
には、どのようにすればいいのでしょうか?

タイトルRe: テーブルの既定値を設定する
記事No: 13576
投稿日: 2004/05/24(Mon) 17:25
投稿者: 雅
こんにちわ。雅です。

横から失礼します。

> "Chk"という項目のDefaultの値を"-1"(つまり選択されている状態)に設定する
> には、どのようにすればいいのでしょうか?

SQLでは設定できないと思います。
DAOでTableDefを使用したりして設定するのが良いと思います。

でわ。

タイトルRe^2: テーブルの既定値を設定する
記事No: 13592
投稿日: 2004/05/25(Tue) 19:31
投稿者: ちーちゃん
> こんにちわ。雅です。
>
> 横から失礼します。
>
> > "Chk"という項目のDefaultの値を"-1"(つまり選択されている状態)に設定する
> > には、どのようにすればいいのでしょうか?
>
> SQLでは設定できないと思います。
> DAOでTableDefを使用したりして設定するのが良いと思います。
>
> でわ。

返答ありがとうございます。
TableDefsを使ってFieldを追加する事はできましたが、

set MTbale= tabledefs("T_mailadress")
with MTbale
.Fields.Append .CreateField("Chk",dbBoolean)
end with

DefaultValue のヘルプを見ても初心者の私にはいまいちわかりません。
恐れ入りますが、ご教授いただけないでしょうか?

タイトルRe^3: テーブルの既定値を設定する
記事No: 13595
投稿日: 2004/05/25(Tue) 22:05
投稿者: 雅
こんばんわ。雅です。

> TableDefsを使ってFieldを追加する事はできましたが、
>
> set MTbale= tabledefs("T_mailadress")
> with MTbale
> .Fields.Append .CreateField("Chk",dbBoolean)
> end with

おしいですね。
CreateFieldしたオブジェクトを一度変数に入れてそのプロパティとしてセットします。

Set FieldObject = TableDefObject.CreateField("FieldName", dbBoolean)
FieldObject.DefaultValue = False

とか

でわ。

タイトルRe^4: テーブルの既定値を設定する
記事No: 13600
投稿日: 2004/05/25(Tue) 23:13
投稿者: ちーちゃん
> おしいですね。
> CreateFieldしたオブジェクトを一度変数に入れてそのプロパティとしてセットします。
> 例
> Set FieldObject = TableDefObject.CreateField("FieldName", dbBoolean)
> FieldObject.DefaultValue = False
>
> とか
>
> でわ。

返信ありがとうございます。
すいません。プログラム初心者なもので・・・雅さんの言っている意味がわかりません・・・
やりたい事は、T_mailadressというテーブルにDefaultの値が、"True"?の
"Check"というYes/No型の項目を追加したい事なのですが、、、、
申し訳ありませんが、今後の参考にもなると思いますので、説明を含めて
教えていただけないでしょうか?


Private Sub test Click()

  Dim db As Database
Dim Mtable As TableDef
Dim Mfield As Field
Dim tableobject As Object

Set db = CurrentDb

Set Mtable = db.TableDefs("T_mailadress")

With Mtable
.Fields.Append .CreateField("check", dbBoolean)
End With


End Sub

タイトルRe^5: テーブルの既定値を設定する
記事No: 13603
投稿日: 2004/05/26(Wed) 00:16
投稿者: 雅
こんばんわ。雅です。

> すいません。プログラム初心者なもので・・・雅さんの言っている意味がわかりません・・・
> やりたい事は、T_mailadressというテーブルにDefaultの値が、"True"?の
> "Check"というYes/No型の項目を追加したい事なのですが、、、、
> 申し訳ありませんが、今後の参考にもなると思いますので、説明を含めて
> 教えていただけないでしょうか?

ヘルプも見てくださいね。

> Private Sub test Click()
>
>   Dim db As Database
> Dim Mtable As TableDef
> Dim Mfield As Field
> Dim tableobject As Object
>
> Set db = CurrentDb
>
ここでテーブルオブジェクトを取得しているのはわかりますね?
> Set Mtable = db.TableDefs("T_mailadress")
>
CreateFieldでフィールドオブジェクトを作成しフィールドコレクションに追加しています。
> With Mtable
> .Fields.Append .CreateField("check", dbBoolean)
> End With

この部分を(個人的にWithが嫌いなので普通に書きます)
Set Mfield = MTable.CreateField("check", dbBoolean)

MField.DefaultValue = Flase

MTable.Fields.Append MField
などと書きます。
内容は「フィールド作って規定値プロパティに[False]をセットしフィールドコレクションに追加する」です。

こんな感じかな?

でわ。

タイトルRe^6: テーブルの既定値を設定する
記事No: 13605
投稿日: 2004/05/26(Wed) 03:27
投稿者: ちーちゃん
> 内容は「フィールド作って規定値プロパティに[False]をセットしフィールドコレクションに追加する」です。
>

ありがとうございました。
確かにDefaultValueは、True(-1)になっておりました。
そこで、また質問なのですが、テーブル作成クエリで作成した
T_mailadressのレコード(約100件)のField("check")の値に
True(-1)をセットしたいのですが・・・・。
どのようにしたらいいのでしょうか?

set rc=Mtable.OpenRecordSet(dbOpenTable)
rc.MoveFirst
Do Until rc.EOF
.
.
.
Loop
でいいのしょうか?

タイトルRe^7: テーブルの既定値を設定する
記事No: 13606
投稿日: 2004/05/26(Wed) 04:13
投稿者: ちーちゃん
> > 内容は「フィールド作って規定値プロパティに[False]をセットしフィールドコレクションに追加する」です。
> >
>
> ありがとうございました。
> 確かにDefaultValueは、True(-1)になっておりました。
> そこで、また質問なのですが、テーブル作成クエリで作成した
> T_mailadressのレコード(約100件)のField("check")の値に
> True(-1)をセットしたいのですが・・・・。
> どのようにしたらいいのでしょうか?
>
> set rc=Mtable.OpenRecordSet(dbOpenTable)
> rc.MoveFirst
> Do Until rc.EOF
> .
> .
> .
> Loop
> でいいのしょうか?


自己レスです・・・。
Private Sub test_Click()

Dim db As Database
Dim Mtable As TableDef
Dim Mfield As Field
Dim rc As Recordset
Dim check As String

Set db = CurrentDb
DoCmd.OpenQuery ("メールアドレス抽出")

Set Mtable = db.TableDefs("T_mailadress")

Set Mfield = Mtable.CreateField("check", dbBoolean)
Mtable.Fields.Append Mfield

Set rc = Mtable.OpenRecordset(dbOpenTable)
With rc
.MoveFirst
Do Until rc.EOF
.Edit
.Fields("check").Value = True
.Update
.MoveNext
Loop
.Close
End With

Set rc = Nothing
End Sub

他に何か良いアドバイスいただけると助かります。

タイトルRe^7: テーブルの既定値を設定する
記事No: 13610
投稿日: 2004/05/26(Wed) 09:37
投稿者: 雅
おはようございます。雅です。

> ありがとうございました。
> 確かにDefaultValueは、True(-1)になっておりました。

それでいいのではないでしょうか?

> そこで、また質問なのですが、テーブル作成クエリで作成した
> T_mailadressのレコード(約100件)のField("check")の値に
> True(-1)をセットしたいのですが・・・・。

私が質問の内容を取り違えていたのでしょうか?
私は既存のテーブルにフィールドを追加しその規定値プロパティに値を入れると思っていました。
しかしこのレスを見るとテーブル作成クエリで作成したテーブルにフィールドを追加して(?)値をセットしたいと
言うことでしょうか?
もしそうであればクエリのフィールドに
check: True
と入れると一発で出来ます。

でわ。

タイトルRe^8: テーブルの既定値を設定する
記事No: 13615
投稿日: 2004/05/26(Wed) 13:09
投稿者: ちーちゃん
>> 私が質問の内容を取り違えていたのでしょうか?
> 私は既存のテーブルにフィールドを追加しその規定値プロパティに値を入れると思っていました。
> しかしこのレスを見るとテーブル作成クエリで作成したテーブルにフィールドを追加して(?)値をセットしたいと
> 言うことでしょうか?
> もしそうであればクエリのフィールドに
> check: True
> と入れると一発で出来ます。
>
> でわ。

ありがとうございました。
そうでした(^^ゞ → テーブル作成クエリ
しかし、コーディングをする上でとても参考になりました。
また、参考にさせてください。


このAccessフォーラム過去ログ集は、Microsoft Access Club が運営しています

PLESKやcPanelをインストールしたレンタルサーバーをディスカウト価格で提供中。ヨーロッパデータセンターご希望の方は必見です。
PLESKやcPanelレンタルサーバーをディスカウト価格で...。
ヨーロッパデータセンターご希望の方は必見です。

 

ページの先頭へ 前ページへ戻る