• ベストアンサー

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

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

  • ベストアンサー
noname#140971
noname#140971
回答No.2

? 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()だと時刻も記録されるかと思います。

kkninolove
質問者

お礼

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

その他の回答 (1)

回答No.1

見たままです 一語一句見比べてみてください 上と下ではある一点において絶対的な違いがあります その違いはデータベースを理解していれば テーブルの設計が間違っている事に気付くはずです データベースを理解していないのであれば、プログラム以前に データベース設計を理解する事から始めるべきだと思います 付け焼刃でプログラムやデータベースをいじったり 端的に答えだけを求めてもご自身の実力につながりませんよ また、データベースの質問をしているのにソースだけ書くということも データベース(テーブル設計)が把握できない以上、質問としては不十分だと思います

kkninolove
質問者

お礼

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

関連するQ&A