[リストへもどる]   [VBレスキュー(花ちゃん)]
一括表示

投稿時間:2004/10/10(Sun) 16:48
投稿者名:miho
Eメール:
URL :
タイトル:
VB⇒ACCESSテーブルへの更新処理
御世話になります。今回で投稿3回目、まだまだ初心者ですがよろしく御願いいたします。
VB/ACCESS連携についてご教示いただきたく投稿させていただきました。

VBプログラムから入力された値を、ACCESSテーブルへ更新させたいと考えております。
従来からあるプログラムをメンテナンスすることになり、ACCESSの呼び出し方は
従来のコードを流用しております。
 ⇒下記に記載の以下のコード部分
   Set AppAccess = CreateObject("Access.Application")
   AppAccess.OpenCurrentDatabase "C:\r002.mdb"
また、アクセス側のテーブル(PR_テーブル)には、現在レコードが1件(PR_key=999)
存在しております。

以下、現在までに行っている具体的内容を記載させていただきます。

VB画面より、入力された”種類”(⇒変数:P_shu)及び、”年月”(⇒変数:P_ym)
を、VBからACCESSを呼び出しACCESSテーブルへ更新させようとしてます。

※VB内のコーディングでは以下の記述をしております。
--------------------------------------------

'Access型オブジェクト インスタンスの作成
Set AppAccess = CreateObject("Access.Application")

'Accessを非表示にする
AppAccess.Visible = False

'AccessDBをオープンする。                            
AppAccess.OpenCurrentDatabase "C:\r002.mdb"

'Accessテーブル 【PR_テーブル】の項目:「PR_key」が"999"のデータに対して、
'「PR_種」、「PR_ym」項目を入力値で更新する。
AppAccess.DoCmd.RunSQL ("UPDATE PR_テーブル SET PR_種='"" & P_shu & ""'"",PR_ym='"" & P_Ym &""' WHERE PR_Key='"" & 999 &""'")
--------------------------------------------

現在、上記 RunSQLを実行したところ、
 「VB-03129:SQLステートメントが正しくありません。」
エラーが返されてしまいます。

そこで、ご教示いただきたいのは、
@実現したい内容に対して、実現方法として正しいか?
  (RunSQLで実現可能か?)
A実現方法として、間違っていなければ、記述内容のアドバイス・
 ご指導をいただければと思っております。
 ⇒エラー内容からして、記述の内容に問題があるとは思っております
B別の手段による回避方法(実現手段)

投稿時間:2004/10/11(Mon) 03:55
投稿者名:Say
Eメール:
URL :
タイトル:
Re: VB⇒ACCESSテーブルへの更新処理
機種依存文字(丸つき数字)は使わないように。

> (1)実現したい内容に対して、実現方法として正しいか?
>   (RunSQLで実現可能か?)
一般的な方法ではありませんが、可能です。

> (2)実現方法として、間違っていなければ、記述内容のアドバイス・
>  ご指導をいただければと思っております。
>  ⇒エラー内容からして、記述の内容に問題があるとは思っております
正しいSQLを記述してください。

SQL文をRunSQLメソッドの後ろに直接続けたりせず、
一度String変数に入れて、どんな文字列になっているかチェックしてください。

ダブルコーテーションが多すぎるということもありますが、
「VB-03129:SQLステートメントが正しくありません。」の直接の原因は全角空白です。

> (3)別の手段による回避方法(実現手段)
正しいSQLを記述する以外に回避する方法はありませんが、
別の実現手段という意味なら、ADOを用いるほうが一般的です。

勉強するならこのへん。
hhttp://homepage2.nifty.com/inform/vbdb/

投稿時間:2004/10/11(Mon) 13:15
投稿者名:miho
Eメール:
URL :
タイトル:
【解決】Re^2: VB⇒ACCESSテーブルへの更新処理
> 機種依存文字(丸つき数字)は使わないように。
 ⇒ご指摘ありがとうございました。
  以後、使用いたしません。

> 「VB-03129:SQLステートメントが正しくありません。」の直接の原因は全角空白です。
 ⇒”全角空白”ピンポイントでした。
  念のため、SQLを変数にセットし、確認実施いたしました。
  ACCESSテーブルへの書込みが上手くいきました。

夜分遅くにご返答いただきありがとうございました。
今後、基礎を積上げ精進いたします。