VB6.0,DAOでXlsファイルに数字を入力させるには?

解決


ポッケ  2003-04-21 11:59:13  No: 106802  IP: [192.*.*.*]

VB6.0からDAOを使いXlsファイルにテキストボックスから入力された数字を
保存しようとしています。
現在下のように処理しているのですが、処理終了後エクセルでxlsファイルを開くと
数字の頭に'が付き文字列として扱われてしまっています。
これを上手く数字として認識させ入力させる良い方法がありましたらご教授ください。

Set DB = OpenDatabase(xlFileName, False, False, "Excel 8.0;HDR=NO;")
Set RS = DB.OpenRecordset(xlSheetName)

Do Until txtInput(i).Text = ""
        RS.Edit
        RS.Fields(1) = txtInput(i).Text
        RS.Update
        i = i + 1
        RS.MoveNext
        If i = 10 Then
            Exit Do
        End If
Loop
    
RS.Close
DB.Close

編集 削除
とろ  2003-04-21 12:19:57  No: 106803  IP: [192.*.*.*]

> RS.Fields(1) = txtInput(i).Text

RS.Fields(1) = CDbl(txtInput(i).Text)
のように明示的に数値型に変換してみてはどうですか?
# 未確認です。

編集 削除
ポッケ  2003-04-21 12:29:17  No: 106804  IP: [192.*.*.*]

とろさんありがとうございます。
でも、試してみましたが、上手く動作しませんでした。
やはり数字の頭に'がついてしまいます。

編集 削除
Loreley  2003-04-21 16:13:44  No: 106805  IP: [192.*.*.*]

RS.Edit
        RS.Fields(1) = txtInput(i).Text
        RS.Update

編集 削除
Loreley  2003-04-21 16:16:00  No: 106806  IP: [192.*.*.*]

上のは間違いです。すいません(^^;

RS.Edit
RS.Fields(1) = txtInput(i).Text

Call RS.Fields(1).CreateProperty(, dbCurrency)

RS.Update

としてみてはいかがでしょう

編集 削除
ポッケ  2003-04-21 22:06:03  No: 106807  IP: [192.*.*.*]

Loreleyさんありがとうございます。
先ほど試してみましたが、やはり数字の頭に'がついてしまいました。
しかし、そのあと色々とイジってみたところ、
xlsファイルの数字を入れたいところに元々0を入れておけば
上から数字を入れたとき'が付かず数字として扱われることがわかりました。
ですので、とりあえず解決とさせていただきます。
アドバイスをありがとうございました。

編集 削除
Loreley  2003-04-22 04:19:22  No: 106808  IP: [192.*.*.*]

そうですか
うちでやってみたときは、
「'50」(文字の50)を「50」(数値の50)に変換できたんですけど
ExcelかDAOのバージョンの違いなのかなぁ

お力になれなかったようで(^^;

編集 削除
Loreley  2003-04-22 04:20:46  No: 106809  IP: [192.*.*.*]

あ、ひとつ違いがありました
RS.Fields(0) = txtInput(i).Text
ではなく
RS.Fields(0).value = txtInput(i).Text
として代入してました。
(といっても多分あんまり関係ないですね、これは・・・)

編集 削除