アプリ版:「スタンプのみでお礼する」機能のリリースについて

Dim ws As DAO.Workspace, db As DAO.Database
Dim rs As DAO.Recordset
' デフォルトのワークスペースを定義する
Set ws = DBEngine.Workspaces(0)
' ODBC接続文字列を指定してデータベースを開く
Set db = ws.OpenDatabase("", False, False, _
"DSN=SQL_K;ODBC;Driver={SQK_K};" & _
"SERVER=(local);DATABASE=pubs;" & _
"UID=*****;PWD=*****;"
' SQLステートメントを指定してレコードセットを作成する
Set rs = db.OpenRecordset("select * from TWSQLK1",dbOpenDynaset, dbSeeChanges)
  このレコードセットは正常に行きますが
  直接SQLを記述する方法が、わかりません
  

A 回答 (3件)

連発で失礼します



もしかしてSQL文に間違いがありませんか?
SQL文をコピーして新規クエリーに貼り付けると
正しいかどうかテストできます

うまくいかないソースコードも教えてください。
お願いします。
    • good
    • 0

前記のヘルプはVBの場合でした。

すみません。
Access2000の場合はVBAのヘルプから
質問に"Execute"と入力。
下の一覧のExecuteメソッド(なぜか複数でる、ADOじゃないものの中の)以下の内容が書いてる説明を読んでください。

"指定した Connection オブジェクトや Database オブジェクトで、アクション クエリーまたは SQL ステートメントを実行します。"

まず
>Dim ws As DAO.Workspace, db As DAO.Database
ここですが2行にしましょう。おまじないです。
Dim ws As DAO.Workspace
Dim db As DAO.Database
...

Dim strSQL As String '追加です

...
Set db= .....

'の後、削除の場合
strSQL="delete * from TWSQLK1 where キー=条件"
'UODATE,INSERTなどのSQL文は独学してくださいね。

db.Execute strSQL, dbFailOnError

※dbFailOnErrorはエラーが発生すると更新をロールバックします。これも前述のヘルプを参照ください。
    • good
    • 0

こんにちは



>直接SQLを記述する方法が、わかりません

とのことですが?

1.直接UPDATEやINSERTをする方法という意味ですか?
2.それともレコードセットに対して更新ですか?
3.上記以外ですか?

1.ならdb.Executeというメソッドを使います。
詳しくはヘルプの"Execute メソッド"を参照ください
2.なら、
rs.edit(更新)またはrs.addnew(追加)
rs.fields("項目名")=hogehoge
rs.update

という具合です。
詳しくはヘルプ(MSDNライブラリ)の
Visual Basic ドキュメント
+Microsoft DAO3.51
にありますので見てね

この回答への補足

申し訳ありませんがExcute メソッドを参照しましたが
いまいちうまくいきません、
できましたら、簡単にソースコードを記述してもらえると助かります
やりたいことは1番の方法で やりたいですが

補足日時:2003/11/19 14:03
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!