- ベストアンサー
MS-ACCESSで、レコードセットを取得したい。
noname#79209の回答
- ベストアンサー
Dim rstTable as ADODB.Recordset Set rstTable = New ADODB.Recordset rsTable.open "テーブル名", CurrentProject.Connection ですが、以降の処理は多岐にわたりますので、 「技術評論社」の「Access2002 表現百科850」 http://www.amazon.co.jp/exec/obidos/ASIN/4774115681/qid=1127782111/sr=1-7/ref=sr_1_10_7/250-1523107-0995417 という本をお求めになって、学習することをお勧めします。
関連するQ&A
- AD0を使ってレコード総数を取得する方法は?
22歳男性です。 VBAでADOを用いてデータベース(SQL Server)に接続してレコードを取得するプログラムを作りました。 -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ dim recordset as new ADODB.Recordset dim a as integer recordset.open , , adOpenStatic a = recordset.recordcount ←← レコード総数代入 -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ (少しソースを省いています。) このようにして、レコードの総数を代入するようなプログラムを作ったんですけど、このレコードの総数を取得する方法は、「recordcount」を使うしかないのでしょうか? もし上記以外の方法で、レコードの総数を取得できる方法を知っていたら教えてください。
- ベストアンサー
- その他(プログラミング・開発)
- ADOで現在のレコードの次のレコードの値も取得
ADOで現在のレコードの次のレコードの値も取得するには? アクセスに対してADOでデータを取得しているのですが 例えばテーブルに フィールド1 あああ いいい ううう と入ってる時に、1レコード目のあああの値を取得しているときに、同時に次のレコードのいいいの値も取得することは可能ですか? Sub Sample() Dim cn As New ADODB.Connection Dim rs As New ADODB.Recordset Set cn = CurrentProject.Connection rs.Open "SELECT * FROM テーブル1", cn, adOpenStatic, adLockPessimistic For i = 1 To rs.RecordCount MsgBox rs("フィールド1") '現在のレコード MsgBox rs("フィールド1") + 1 '次のレコード rs.MoveNext Next rs.Close: Set rs = Nothing cn.Close: Set cn = Nothing End Sub これだとダメなようです。 あああ いいい が表示されるようにしたいのですが、どうすればいいか教えてください。
- ベストアンサー
- オフィス系ソフト
- 異なるフォームに属する関数間でACCESSのレコードセットを受け渡しする。
msAccess2000のVBAコードの質問です。 元々、全てを理解しているわけではないのにVBAコードを書いているのが無茶なんですが、無茶を承知でプログラミングしています。 あるクエリの結果を、あるフォームで帳票表示しています。この帳票の一レコードにボタンをつけて、クリックイベントで、そのレコードを取得しようとしています。フォームはこの後、閉じられた後、呼び出された親にその、レコードを渡したいのです。 フォームは、親フォームのボタンクリックイベントから、DoCmd.Openformメソッドによって呼び出されるので、戻り値は使えません。 しょうがないので、広域変数rst(DAO.Recordset型)で、受け渡そうと思ったのですが、recordset型は、どうやら参照のようで、フォーム(クエリ?)を閉じると、レコードが壊れてしまうようなのです。 Module1で、 public rst as DAO.recordset として、 Private Sub コマンド34_Click() set Module1.rst=me.recordset ' この中では、rst.fields(*)で、フィールドの値を使えるのですが・・・ END Sub 呼び出した親フォームでは、module1.rst.fields(*)を使用できません。 質問は二つあります。 1)広域変数rstは、上記のような宣言・使用法で問題ないですか? 2)sub またはfunction間にわたって、レコードを渡す、いい方法はないですか?
- 締切済み
- オフィス系ソフト
- レコードセットに新規追加する
Access2013 VBAで ■テーブルa ・id ・名前 ・id2 とあり このテーブルのレコードセットを以下のように作ります。 dim Rec = dao.Recordset Set Db = CurrentDB set Rec = Db.OpenRecordset("Select * from [テーブルa] where id2 = " & 2, dbOpenDynaset) この時、このテーブルにid2=2のレコードが何もない場合、この生成したRecで、 Rec.AddNew Rec.Fields("名前").value = "名前" Rec.Update と出来ますでしょうか? よろしくお願いします。
- ベストアンサー
- その他(データベース)
- Access2000/2002フォームのレコードセットについて
Access97で作成されたプログラムを Access2002で作り直す必要に迫られています。 プロジェクト形式ではなく、MDB形式のままで進めているのですが VBAのコーディングは、すべてADOに変更するように指示されています。 基本的な知識が不足している状況なので、おかしな質問だと思いますが どうかご容赦ください。 フォームで利用するレコードセットについて、壁にぶつかっています。 Access97のフォームで普通に利用していた Set rs=Me.RecordsetClone これは、ADOでは、どのように置き換えを考えていけばよいのでしょうか? フォーム内のモジュールで、そのフォームに結びついている Recordsetの取り扱い方法について、一般的なルールのようなものを 教えていただけますと、ありがたいのですが・・・ 半日ほど、色々なサイトを検索してみたのですが どうにも答えが見つかりません。 そもそも、Access2000/2002フォームのRecordSetがDAOなのかADOなのかも 分かりません。 アドバイスや、参考になる書籍の情報などをいただけないでしょうか。 なにとぞ、よろしくお願いいたします。
- ベストアンサー
- オフィス系ソフト
- ADOのレコードセットをローカルにキャッシュする方法
ご質問させて頂きます。 MS SQL 2000 と VB 6.0 の環境で、ADO接続しています。 SQLサーバに接続し、データをレコードセットに取得したのですが、Connectionをクローズするとレコードセットも参照できなくなってしまいます。 Connectionをクローズ後もレコードセットを使えるようにする方法はありませんでしょうか? どうぞ宜しくお願いします。
- ベストアンサー
- その他(データベース)
- VBAでレコードセットの総レコード数を取得する方法
Dim con As ADODB.Connection Dim rsData As ADODB.Recordset Dim DNSname$,USERname$,PASSw$,cnt& Set con = CreateObject("ADODB.Connection") con.Open "DSN=" & DNSname & "; UID= " USERname & "; PWD=" & PASSw Set rsData = New ADODB.Recordset rsData.Open SQL, con Do While Not rsData.EOF rsData.MoveLast cnt=rsData.RecordCount rsData.First LOOP といいコードで総レコード数が取得できるかなとやってみたところ、rsData.MoveLastのところで、「行セットは逆フェッチをサポートしていません」というエラーが出ました。 なにかほかの方法で総レコード数を取得する方法があるのでしょうか? 自分で他に試したことは、rsData.EOFまでrsData.MoveNextでもっていきrsData.EOF-1レコードの.RecordCountを取得すしようと試みましたが、最後のレコードまできても.RecordCountは「-1」のまま変化しませんでした。レコードセットの呼び込み方が不味いのでしょうか?
- ベストアンサー
- オフィス系ソフト
- DAOレコードセットから更に絞込みしたい
VBAで質問です。あるレコードセットXをsqlで取得しました。さらにこのレコードセットにSQLを投げて絞り込みたいと思っています。例えばSQLでA,B,C列を取得しました。このA、B、C列があるレコードセットにwhereで絞り込みたいと思ってます。レコードセットXに向けて、select * from X where...というコードは投げれるのでしょうか?
- ベストアンサー
- Visual Basic
- フィルタ後のテーブルのレコード数を取得したい
アクセスvbaです。 フィルタ後のテーブルのレコード数を取得したいのですが Debug.Print DCount("[フィールド1]", "テーブル1") だと、フィルタ前の数が取得されてしまいます。 フォーム1にテーブル1を紐付けて、 更にフィルタをしているのですが、 元のテーブル1のレコード数が10として、 フィルタ後が3なら、3を取得するVBAコードを教えてください。
- ベストアンサー
- オフィス系ソフト
- ADOレコードセット操作(Forループ用の変数)
CSVファイルからADO接続でレコードセットを取得し、 順次出力していきたいと考えています。 CSVファイルにはフィールド名が含まれていないので schema.iniで Col1=F1 char Col2=F2 char Col3=F3 char Col4=F4 char Col5=F5 char Col6=F6 char・・・ という要領で名前を付けています。 現在、 myData(1)=recordset![F1] myData(2)=recordset![F2] myData(3)=recordset![F3]・・・ という形でフィールド数と同じ行数、レコードを取り出すコードを記述していますが、これを For i = 1 to 6 myData(i)=recordset!F[i] Next i ・・・のような形でForループにできないかと試行錯誤しています。 うまい具合にフィールド名の連番数字を使うには、どのようにしたら よいものでしょうか?
- ベストアンサー
- Visual Basic
お礼
ありがとうございます。ADOという技術でかなりの事ができるようで、ご紹介いただいた書籍も今度購入してみることにします。本当に助かりました。