入力フォームの内容をテーブルへ登録するFunctionプロシージャを作成したいのですが上手くいきません。
ご指導いただければと思います。宜しくお願いいたします。
Function WriteMyData() As Boolean
DoCmd.Hourglass True
On Error GoTo errHandler
WriteMyData = False
Set MycnnDst = Application.CurrentProject.Connection
Set MycnnrstDst = New ADODB.Recordset
MycnnrstDst.Open "SELECT 整理番号,発掘者,件名,発生日,曜日,時間," _
& "天候,温度,風,体調," _
& "作業分類,作業詳細," _
& "MAN,MACHINE,MEDIA,MANAGE," _
& "内容,影響,対策,重要度,対策完了,入力日 " _
& "FROM " & MyTableName & " WHERE 整理番号='" & Me.整理番号 & "'", MycnnDst, adOpenKeyset, adLockPessimistic, adCmdText
Select Case Me.MyDataMode
Case "追加"
If MycnnrstDst.EOF Then
MystrTableDst = "INSERT INTO " & MyTableName & " "
If IsNull(Me.対策完了) Then
MystrItemDst = "( 整理番号, 発掘者, 発生日, 件名, 曜日, 時間, " _
& "天候, 温度, 風, " _
& "体調, 作業分類, 作業詳細, " _
& "MAN, MACHINE, MEDIA, MANAGE, " _
& "内容, 影響, 対策, 重要度, 入力日, " ') "
MystrItemSrc = "VALUES ('" & Me.整理番号 & "','" & Me.発掘者 & "'," _
& "#" & Me.発生日 & "#,'" & Me.件名 & "','" & Me.曜日 & "','" & Me.時間 & "'," _
& "'" & Me.重要度 & "',#" & Me.入力日 & "#," _
& "'" & "') "
Else
MystrItemDst = "(整理番号,発掘者,件名,発生日,曜日,時間," _
& "天候,温度,風,体調," _
& "作業分類,作業詳細," _
& "MAN,MACHINE,MEDIA,MANAGE," _
& "内容,影響,対策,重要度,対策完了,入力日,図解ファイル,添付ファイル) "
MystrItemSrc = "VALUES ('" & Me.整理番号 & "','" & Me.発掘者 & "'," _
& "#" & Me.発生日 & "#,'" & Me.件名 & "','" & Me.曜日 & "','" & Me.時間 & "'," _
& "'" & Me.内容 & "','" & Me.影響 & "','" & Me.対策 & "'," _
& "'" & Me.重要度 & "',#" & Me.対策完了 & "#," & "#" & Me.入力日 & "#," _
& "'" & "') "
End If
MystrTableSrc = ""
MystrParmSrc = ";"
MystrSqlDst = MystrTableDst & MystrItemDst & MystrItemSrc & MystrParmSrc
MycnnrstDst.AddNew
MycnnDst.Execute MystrSqlDst, , adCmdText
Me.MyEdited = ""
End If
Case "修正"
MystrTableDst = "UPDATE " & MyTableName & " "
If IsNull(Me.対策完了) Then
MystrItemDst = "SET " _
& "整理番号 = '" & Me.整理番号 & "', " _
& "発掘者 = '" & Me.発掘者 & "', 発生日 = #" & Me.発生日 & "#, " _
& "件名 = '" & Me.件名 & "', 曜日 = '" & Me.曜日 & "', " _
& "入力日 = #" & Me.入力日 & "#, " & "' "
Else
MystrItemDst = "SET " _
& "整理番号 = '" & Me.整理番号 & "', " _
& "発掘者 = '" & Me.発掘者 & "', 発生日 = #" & Me.発生日 & "#, " _
& "件名 = '" & Me.件名 & "', 曜日 = '" & Me.曜日 & "', " _
& "対策完了 = #" & Me.対策完了 & "#, 入力日 = #" & Me.入力日 & "#, " & "' "
End If
MystrItemSrc = ""
MystrTableSrc = ""
MystrParmSrc = "WHERE (連番 = " & Me.連番 & ");"
MystrSqlDst = MystrTableDst & MystrItemDst & MystrItemSrc & MystrTableSrc & MystrParmSrc
MycnnDst.Execute MystrSqlDst
End Select
Forms!HiyariHattoIchiran2013.Requery
WriteMyData = True
ExitMe:
On Error Resume Next
On Error GoTo errHandler
DoEvents
DoCmd.Hourglass False
Exit Function
errHandler:
MsgBox "WriteMyData Error Number " & Err.Number & " : " & Err.Description
WriteMyData = False
Resume ExitMe
End Function
No.3ベストアンサー
- 回答日時:
エラーについては、既出の3つの回答で解決されるかと思います。
私からはそのエラーが解消したとして・・・やっておきたい事を(他の部分も提示されていたので)
やりたい処理を整理されてみてはどうでしょう。
MycnnrstDst は、(「追加」時に)ある/ない判別にしか使ってない様ですね。
MycnnrstDst を得ているのなら、追加時には MycnnrstDst.AddNew してから
MycnnrstDst("整理番号") = Me.整理番号 等羅列して最後に Update すれば良いような気がします。
例)
MycnnrstDst.AddNew
MycnnrstDst("整理番号") = Me.整理番号
・・・
MycnnrstDst("重要度") = Me.重要度
If (Not IsNull(Me.対策完了)) Then
MycnnrstDst("内容") = Me.内容
・・・
MycnnrstDst("対策完了") = Me.対策完了
End If
・・・
MycnnrstDst.Update
そうすれば、INSERT文に記述しているフィールド部分と VALUES 部分の個数/順があっていない
等、間違いがなくなるような気がします。
If IsNull(Me.対策完了) Then 側では、天候, 温度, 風,・・・ に対する VALUES が無さそう
その Else 側では、上記に加え、件名,発生日が "#" & Me.発生日 & "#,'" & Me.件名 で逆 とか
また、「追加」の最後の方で MycnnrstDst.AddNew してますが、この後どうなるのでしょう
変数の宣言部分( Dim なんチャラ )がないので、他の処理で使っているのかもしれませんが・・・
MycnnrstDst.Close しないまま、また MycnnrstDst.Open するとエラーになったような
(実際には Set MycnnrstDst = New ADODB.Recordset しているので大丈夫かと思いますが、Close は必要な気がします)
「修正」時の方では、
> Me.入力日 & "#, " & "' "
ここは、Me.入力日 & "# " で良さそうなんですが
No.2
- 回答日時:
Dim sql As String
としておいて
sql = "SELECT 整理番号,発掘者,件名,発生日,曜日,時間," _
& "天候,温度,風,体調," _
& "作業分類,作業詳細," _
& "MAN,MACHINE,MEDIA,MANAGE," _
& "内容,影響,対策,重要度,対策完了,入力日 " _
& "FROM " & MyTableName & " WHERE 整理番号='" & Me.整理番号 & "'"
Debug.Print sql
MycnnrstDst.Open sql, MycnnDst, adOpenKeyset, adLockPessimistic, adCmdText
でSQL文が正しいか確認したらどうなりますか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
餃子を食べるとき、何をつけますか?
みんな大好き餃子。 ふと素朴な疑問ですが、餃子には何をつけて食べますか? 王道は醤油とお酢でしょうか。
-
一回も披露したことのない豆知識
あなたの「一回も披露したことのない豆知識」を教えてください。 「そうなんだね」と「確かに披露する場所ないね」で評価します。
-
ホテルを選ぶとき、これだけは譲れない条件TOP3は?
ホテルを探す時、予約サイトで希望条件の絞り込みができる便利な世の中。 あなたは宿泊先を決めるとき「これだけは譲れない」と思う条件TOP3を教えてください。
-
ちょっと先の未来クイズ第4問
11月ごろに発表される、2024年の「新語・流行語大賞」にノミネートされる言葉を書けるだけ書いてください。
-
架空の映画のネタバレレビュー
映画のCMを見ていると、やたら感動している人が興奮で感想を話していますよね。 思わずストーリーが気になってしまう架空の感動レビューを教えて下さい!
-
実行時エラー3131 FROM 句の構文エラーです について
Access(アクセス)
-
アクセス VBAについて FROM句の構文エラー
Access(アクセス)
-
AccessのSQLで、FROM句の構文エラー
その他(データベース)
-
-
4
FROM句の構文エラー ACCESS SQL
その他(データベース)
-
5
access2003 クエリSQL文について
その他(プログラミング・Web制作)
-
6
Access2010 「演算子がありません」エラー
その他(データベース)
-
7
ACCESS 「パラメータの入力」を消したい!!
Access(アクセス)
-
8
ACCESS VBAの実行時エラーなんですが
PowerPoint(パワーポイント)
-
9
SQL文で パラメータが少なすぎます エラー
Access(アクセス)
-
10
パラメータが少なすぎます。1を指定して下さい。""
Excel(エクセル)
-
11
ACCESSでテーブルにあるチェックボックスを一括でYesにする方法を教えてください
Access(アクセス)
-
12
アクセスで数値型のフィールドにNullをいれたい
その他(データベース)
-
13
VBでSQL文のUPDATE構文を使った時のエラーについて
Visual Basic(VBA)
-
14
Accessのテーブルデータを一気にVBAで追加したい・・
その他(データベース)
-
15
アクセス 壊れた? 「ファイルが見つかりません」
Access(アクセス)
-
16
JOIN使ってないのに、JOIN操作の構文エラーっ
その他(データベース)
-
17
Access 2010で実行時エラー3061
その他(Microsoft Office)
-
18
アクセス2013 フォームが開かない
その他(プログラミング・Web制作)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・一回も披露したことのない豆知識
- ・これ何て呼びますか
- ・チョコミントアイス
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・これ何て呼びますか Part2
- ・許せない心理テスト
- ・この人頭いいなと思ったエピソード
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・あなたの習慣について教えてください!!
- ・ハマっている「お菓子」を教えて!
- ・高校三年生の合唱祭で何を歌いましたか?
- ・【大喜利】【投稿~11/1】 存在しそうで存在しないモノマネ芸人の名前を教えてください
- ・好きなおでんの具材ドラフト会議しましょう
- ・餃子を食べるとき、何をつけますか?
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・家の中でのこだわりスペースはどこですか?
- ・つい集めてしまうものはなんですか?
- ・自分のセンスや笑いの好みに影響を受けた作品を教えて
- ・【お題】引っかけ問題(締め切り10月27日(日)23時)
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・架空の映画のネタバレレビュー
- ・「お昼の放送」の思い出
- ・昨日見た夢を教えて下さい
- ・ちょっと先の未来クイズ第4問
- ・【大喜利】【投稿~10/21(月)】買ったばかりの自転車を分解してひと言
- ・メモのコツを教えてください!
- ・CDの保有枚数を教えてください
- ・ホテルを選ぶとき、これだけは譲れない条件TOP3は?
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】
- ・10秒目をつむったら…
- ・人生のプチ美学を教えてください!!
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ハイフンとマイナス
-
VBAのTextBoxに半角数字のみ入...
-
TextBoxに半角数字のみの入力し...
-
教えて!全角文字「μ」の半角文...
-
ネット内で「事後通販」という...
-
STEAMでゲームを購入したところ...
-
agodaで現地決済にしたのにカー...
-
至急です。Yahoo!IDを作りたく...
-
カードの請求でApple.combillみ...
-
三井住友銀行オリーブアカウン...
-
読み方教えてください
-
【YAHOO JAPAN】 ...
-
解約後の請求はいつまで続く?
-
バイクの自賠責をau pay(簡単...
-
クレジットカードの名義人の入...
-
何の請求でしょうか
-
NHKの受信料の明細書と領収書
-
日本のクレジットカードが使え...
-
Amazonについてです。 アカウン...
-
メルカリで電話番号を使われて...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ハイフンとマイナス
-
TextBoxに半角数字のみの入力し...
-
VBAのTextBoxに半角数字のみ入...
-
VB2005 TextBoxに何も入力しな...
-
テキストボックスの入力制限
-
scanf( )で日本語を入力する方...
-
VB.net テキストボックスの入力...
-
教えて!全角文字「μ」の半角文...
-
「FROM 句の構文エラーです」が...
-
入力フォーム(電話番号)
-
インターネットのアドレス欄直...
-
メールが送れません
-
Access97のテキストボックスプ...
-
Kompozerについて
-
ECサイト★2度目以降の情報入力...
-
VisualStudioのインテリセンス
-
単純なコマンドプロンプトが動...
-
同名の登録を防ぐ
-
一年ぶりにiPod使ったらAppleID...
-
アンダーラインを入力したいの...
おすすめ情報