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

解決


ポッケ  2003-04-21 20:59:13  No: 106802

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 21:19:57  No: 106803

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

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


ポッケ  2003-04-21 21:29:17  No: 106804

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


Loreley  2003-04-22 01:13:44  No: 106805

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


Loreley  2003-04-22 01:16:00  No: 106806

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

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

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

RS.Update

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


ポッケ  2003-04-22 07:06:03  No: 106807

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


Loreley  2003-04-22 13:19:22  No: 106808

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

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


Loreley  2003-04-22 13:20:46  No: 106809

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


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加