nofx35のプロフィール
- ベストアンサー数
- 14
- ベストアンサー率
- 82%
- お礼率
- 0%
- 登録日2013/02/05
- 性別男性
- access adoのトランザクション
access2003でSQLServer2008へのリンクテーブルを作成し、 vbaでadoを使ってデータ更新処理をしようとしています。 以下のように記述していますが、 実行後、BやCのテーブルが開かなくなります。 (正確にはインサートしたデータが表示されるであろうページがロックされているような動きです。) また、その状態からAccessを一旦終了し、再度起動すると、データがインサートされていない状態です。 コミットが効いてないように感じます。 こちら原因としてどんなことが考えられるでしょうか? ちなみにDAOで動かしても同様でした。 宜しくお願い致します。 以下 コード============================ Set cn = CurrentProject.Connection Set rst = New ADODB.Recordset cn.BeginTrans rst.Open "select key from A", cn, adOpenForwardOnly, adLockReadOnly Do Until rst.EOF cne.Execute "insert into B ( aa, bb) select aa, bb from A where key = " & rst!key & " " cne.Execute "insert into C ( aa, bb) select aa, bb from A where key = " & rst!key & " " rst.MoveNext Loop rst.Close cn.CommitTrans cn.Close set rst = Nothing set cn = Nothing
- 締切済み
- Visual Basic
- kyuukyuukyuu
- 回答数3
- dimを使わずにredimを使う場合
VBAを使っていて、 配列数を変数で定義したいのですが、 ネットで検索すると Dim aaaa() as integer Redim aaa(xxx, yyy) あるいは Dim aaaa() Redim aaa(xxx, yyy) as integer のようにdimで変数を定義した後にredimで定義しなおす方法が書かれてあります。 一方で、 Redim aaa(xxx, yyy) as integer のように、dimの定義を省略して、いきなりredimで配列を定義しても 問題なくプログラムは実行できることに気がついたのですが これら二つの方法に違いはあるのでしょうか? 後者を使っても問題ないでしょうか?
- ベストアンサー
- Visual Basic
- MASSYY
- 回答数1
- VBAでユーザーフォームが自動的に消える
作成したプログラムを実行している途中で プログラムの開始ボタンや終了ボタン、計算時間などを表示するように作成した ユーザーフォームが自動的に消えることがあります。 他のプログラムではその現象はなく、あるプログラムのある箇所のみで起きます。 しかしながら、毎回起きるというのではなく、3回に1回程度の頻度で起きます。 特にユーザーフォームが消えるようなことは書いていないのですが なぜこのようなことが起きるのでしょうか? 一応、その消える辺りに If (UserForm1.Visible = False) Then UserForm1.Show vbModeless というのを入れてみましたがうまくいきませんでした。 これはどのようにすれば改善できますでしょうか?
- 締切済み
- Visual Basic
- myumyu1234
- 回答数1
- アクセスでADO 並べ替えが適用できない
アクセスでADOを使っているのですが、 Sub test() Dim cn As New ADODB.Connection Dim rs As New ADODB.Recordset Set cn = CurrentProject.Connection rs.CursorLocation = adUseClient rs.Open "SELECT * FROM Q1", cn, adOpenStatic, adLockPessimistic rs.Sort = "受付日 DESC" For i = 1 To rs.RecordCount ・ ・ ・ このようなコードを作っていますが、 rs.Sortの部分で、「並べ替えを適用できません」になります。 レコード数は、15000件くらいです。 なぜ並べ替えができないのでしょうか? しょうがないからクエリで最初から並べ替えしておきますが、原因を教えてください。
- ベストアンサー
- Visual Basic
- iisevznruwopf
- 回答数1
- ADO VBA 実行時エラー3021
rs.Open "SELECT * FROM Tログイン WHERE サイト名='" & サイト名 & "'", cn, adOpenStatic, adLockOptimistic rs("日時") = Now() rs.Update このコードを実行しようとしたときに、 実行時エラー3021「BOFとEOFのいずれかTRUEになっているか、 または現在のレコードが削除されています。 要求された操作には、現在のレコードが必要です。」 と言うエラーが発生する場合があるのですが、 どういう意味のエラーなのかが良くわかりません。 ちなみに、 rs("日時") = Now() をコメントアウトして、 rs.Updateのコードを実行しても、同じエラーが発生します。
- ベストアンサー
- Visual Basic
- hcyyfnknnjo
- 回答数1