こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

Access2000のVBAについて

下記のプログラムだと挿入が可能になります。
Private Sub 削除_コマンド_Click()
If IsNull(Me.社員コード) Then
MsgBox ("社員コードが入力されていません")
Else
Dim strSQL As String
strSQL = "INSERT INTO 社員情報テーブル(社員コード,作成日) " _
& " VALUES ('" & Me.社員コード & "', now());"
DoCmd.RunSQL strSQL
End If
End Sub

しかし、下記のプログラムだとinsert文の『Me.社員コード』で
エラーが発生します。
エラーメッセージは
『メソッドまたはデータメンバが見つかりません』
と表示されます。
上と下とどう違うのでしょうか。
Private Sub 削除_コマンド_Click()
If IsNull(Me.社員コード) Then
MsgBox ("社員コードが入力されていません")
Else
Dim strSQL As String
strSQL = "INSERT INTO 社員情報テーブル(社員コード,氏名(氏),作成日) " _
& " VALUES ('" & Me.社員コード & "','" & Me.氏名(氏) & "', now());"
DoCmd.RunSQL strSQL
End If
End Sub

投稿日時 - 2008-10-15 13:53:18

QNo.4403333

すぐに回答ほしいです

質問者が選んだベストアンサー

? CnnExecute("INSERT INTO 社員情報テーブル(社員コード,氏名(氏),作成日) VALUES ('101','AAA', now())")
False

Err.Description=INSERT INTO ステートメントの構文エラーです。
Err.Number=-2147217900
SQL STATE=3000

? CnnExecute("INSERT INTO 社員情報テーブル(社員コード,[氏名(氏)],作成日) VALUES ('101','AAA', now())")
True

はOK!

× 氏名(氏)
○ [氏名(氏)]

ということです。

なお、NOW()だと時刻も記録されるかと思います。

投稿日時 - 2008-10-15 14:21:14

お礼

解決しました。
ありがとうございました。
こういった方法を知りませんでした。
とても勉強になりました。

投稿日時 - 2008-10-15 16:05:40

このQ&Aは役に立ちましたか?

1人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.1

見たままです
一語一句見比べてみてください
上と下ではある一点において絶対的な違いがあります
その違いはデータベースを理解していれば
テーブルの設計が間違っている事に気付くはずです

データベースを理解していないのであれば、プログラム以前に
データベース設計を理解する事から始めるべきだと思います

付け焼刃でプログラムやデータベースをいじったり
端的に答えだけを求めてもご自身の実力につながりませんよ

また、データベースの質問をしているのにソースだけ書くということも
データベース(テーブル設計)が把握できない以上、質問としては不十分だと思います

投稿日時 - 2008-10-15 14:08:42

お礼

項目を選び間違えてすいませんでした。
データベースを理解しているつもりでしたが、
勉強不足だと思いましたので、
もう一度、勉強し直します。

投稿日時 - 2008-10-15 16:07:20

あなたにオススメの質問