プロが教えるわが家の防犯対策術!

すいません。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

A 回答 (2件)

#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/HP01032 …
    • good
    • 0
この回答へのお礼

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

お礼日時:2008/07/17 14:48

> Yes/Noフラグ型


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

この回答への補足

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

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
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

関連するカテゴリからQ&Aを探す