こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

Yes/Noフラグの値をコピーできない

すいません。ACCESS2003 VBAで下記の問題で困っています。

新たに作成したmdbファイル(テーブルの中身は空)に既存のmdbファイルのテーブル内容をコピーしたいのですが、Yes/Noフラグ型だけ移行できません。一応サンプルのソースです↓

Dim db As DAO.Database
Dim RS As DAO.Recordset
Dim strsql As String

コピー元のmdbファイルをオープン
Set db = OpenDatabase("コピー元mdb")

'SQLの生成
strsql = ""
strsql = strsql & " SELECT * FROM テーブル名"

'レコードセット生成
Set RS = db.OpenRecordset(strsql, dbOpenSnapshot, dbReadOnly)

'コピー元テーブルにデータがあるか判定
If RS.RecordCount = 0 Then
msgbox "データがありません"
Else
RS.MoveFirst
'コピー先のデータベースを設定
Set db = OpenDatabase("コピー先mdb")
'レコードの初期化
db.Execute (DELETE FROM コピー先テーブル名)

Do While RS.EOF = False
strsql = ""
strsql = strsql & " INSERT INTO コピー先テーブル名("
strsql = strsql & " ,コピー先のYes/Noフラグ値" '
strsql = strsql & ")VALUES("
strsql = strsql & " ,'"コピー元のYes/Noフラグ値 "' "
strsql = strsql & ")"

db.Execute (strsql)
RS.MoveNext
Loop

End If

RS.Close
db.Close

投稿日時 - 2008-07-17 10:11:54

QNo.4182961

すぐに回答ほしいです

質問者が選んだベストアンサー

#1です

>> Yes/Noフラグ型
> まぁ、置いといて・・・
> この型は、数値であって、文字ではありません

の意味が判りずらかったでしょうか?

> strsql = ""
> strsql = strsql & " INSERT INTO D_SK_DATA("
> strsql = strsql & " FLG"
> strsql = strsql & ")VALUES("
> strsql = strsql & " '" & RS.Fields("FLG") & "' "
strsql = strsql & RS.Fields("FLG")
> strsql = strsql & ")"

と、1行違うと言う話ね
「'」で囲むと文字列、数値の場合、不要なのよ

参考URL:http://office.microsoft.com/ja-jp/access/HP010322451041.aspx

投稿日時 - 2008-07-17 14:07:27

お礼

無事解決しました!完全に知識不足でした。。わかりやすい回答ありがとうございました。

投稿日時 - 2008-07-17 14:48:54

ANo.2

このQ&Aは役に立ちましたか?

57人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.1

> Yes/Noフラグ型
まぁ、置いといて・・・
この型は、数値であって、文字ではありません
と言うことで、「 INSERT INTO 」の「 ' 」は、型が違うと言う話
Yes : -1
No : 0
と、言う話ね

投稿日時 - 2008-07-17 10:23:36

補足

すいません。簡単にしたつもりが、かえってわかりにくい表記になっていましたので、訂正いたします。

strsql = ""
strsql = strsql & " INSERT INTO D_SK_DATA("
strsql = strsql & " FLG"
strsql = strsql & ")VALUES("
strsql = strsql & " '" & RS.Fields("FLG") & "' "
strsql = strsql & ")"

投稿日時 - 2008-07-17 11:33:53

あなたにオススメの質問