- ベストアンサー
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
- みんなの回答 (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()だと時刻も記録されるかと思います。
その他の回答 (1)
- sirochacha
- ベストアンサー率40% (11/27)
見たままです 一語一句見比べてみてください 上と下ではある一点において絶対的な違いがあります その違いはデータベースを理解していれば テーブルの設計が間違っている事に気付くはずです データベースを理解していないのであれば、プログラム以前に データベース設計を理解する事から始めるべきだと思います 付け焼刃でプログラムやデータベースをいじったり 端的に答えだけを求めてもご自身の実力につながりませんよ また、データベースの質問をしているのにソースだけ書くということも データベース(テーブル設計)が把握できない以上、質問としては不十分だと思います
お礼
項目を選び間違えてすいませんでした。 データベースを理解しているつもりでしたが、 勉強不足だと思いましたので、 もう一度、勉強し直します。
お礼
解決しました。 ありがとうございました。 こういった方法を知りませんでした。 とても勉強になりました。