次の方法で共有

アクセスにエクセルからデータ追加時、型が違うエラーになります。

Anonymous
2019-09-03T07:12:32+00:00

アクセスのデータベースにエクセルからVBAでデータを追加しようとしたのですが、日付と、金額で「種類が一致しない」とエラーになります。

アクセスのデータベースで日付は日付フォーマット、金額は通貨フォーマットにしています。エクセルで同じ項目のの並んだテーブルに追加データを置いて、そこからアクセスデータベースに書き込もうとしました。

    .Open "データベース", adoCn, adOpenKeyset, adLockOptimistic 

    .AddNew

        Worksheets("sheet1").Select

            !主キー[ = Cells(2, 1).Value

            !登録ID = Cells(2, 2).Value

            !No = Cells(2, 3).Value

            !日付 = Cells(2, 4).Value

            !金額 = Cells(2, 5).Value           

    .Update

    .Close 

といったコードです。仕方ないので、アクセス側のフィールドの型を日付、金額とも「短いテキスト」にしたら、取敢えず動きました。

日付については、#9/12/2016# という形式で設定する必要があるとわかりましたが、上記の例で、

!日付 = "#" & Cells(2, 6).Value & "#"

を試しましたが、うまくいきません。

日付データと通貨データをその形式で追加するにはどのようにすればよろしいのでしょうか。

よろしくお願いいたします。

(これは、https://social.msdn.microsoft.com/Forums/ja/home?forum=vbajp にも投稿します。)

Microsoft 365 と Office | Excel | ビジネス向け | Windows

ロックされた質問。 この質問は、Microsoft サポート コミュニティから移行されました。 役に立つかどうかに投票することはできますが、コメントの追加、質問への返信やフォローはできません。

0 件のコメント コメントはありません

質問作成者が受け入れた回答

Anonymous
2019-09-03T07:58:48+00:00

> アクセスのデータベースにエクセルからVBAでデータを追加しようとしたのですが、

> 日付と、金額で「種類が一致しない」とエラーになります。

> アクセスのデータベースで日付は日付フォーマット、

> 金額は通貨フォーマットにしています。

> !日付 = Cells(2, 4).Value

> !金額 = Cells(2, 5).Value  

If IsDate(Cells(2, 4).Value) = True Then

    ![日付] = CDate(Cells(2, 4).Value)

Else

    ![日付] = Null

End If

If IsNumeric(Cells(2, 5).Value) = True Then

    ![金額] = CCur(Cells(2, 5).Value)

Else

    ![金額] = Null

End If


以上のように修正した場合、どのような結果になるのでしょうか。

この回答は役に立ちましたか?

1 人がこの回答が役に立ったと思いました。
0 件のコメント コメントはありません

1 件の追加の回答

並べ替え方法: 最も役に立つ
  1. Anonymous
    2019-09-04T01:55:44+00:00

    sk.exe様

    ありがとうございます。

    上手くいきました。エラーがなくなりました。

    感謝いたします。

    この回答は役に立ちましたか?

    0 件のコメント コメントはありません