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
> RS.Fields(1) = txtInput(i).Text
RS.Fields(1) = CDbl(txtInput(i).Text)
のように明示的に数値型に変換してみてはどうですか?
# 未確認です。
とろさんありがとうございます。
でも、試してみましたが、上手く動作しませんでした。
やはり数字の頭に'がついてしまいます。
RS.Edit
RS.Fields(1) = txtInput(i).Text
RS.Update
上のは間違いです。すいません(^^;
RS.Edit
RS.Fields(1) = txtInput(i).Text
Call RS.Fields(1).CreateProperty(, dbCurrency)
RS.Update
としてみてはいかがでしょう
Loreleyさんありがとうございます。
先ほど試してみましたが、やはり数字の頭に'がついてしまいました。
しかし、そのあと色々とイジってみたところ、
xlsファイルの数字を入れたいところに元々0を入れておけば
上から数字を入れたとき'が付かず数字として扱われることがわかりました。
ですので、とりあえず解決とさせていただきます。
アドバイスをありがとうございました。
そうですか
うちでやってみたときは、
「'50」(文字の50)を「50」(数値の50)に変換できたんですけど
ExcelかDAOのバージョンの違いなのかなぁ
お力になれなかったようで(^^;
あ、ひとつ違いがありました
RS.Fields(0) = txtInput(i).Text
ではなく
RS.Fields(0).value = txtInput(i).Text
として代入してました。
(といっても多分あんまり関係ないですね、これは・・・)
ツイート | ![]() |