nofx35のプロフィール

@nofx35 nofx35
ありがとう数18
質問数0
回答数24
ベストアンサー数
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

  • 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で配列を定義しても 問題なくプログラムは実行できることに気がついたのですが これら二つの方法に違いはあるのでしょうか? 後者を使っても問題ないでしょうか?

    • MASSYY
    • 回答数1
  • VBAでユーザーフォームが自動的に消える

    作成したプログラムを実行している途中で プログラムの開始ボタンや終了ボタン、計算時間などを表示するように作成した ユーザーフォームが自動的に消えることがあります。 他のプログラムではその現象はなく、あるプログラムのある箇所のみで起きます。 しかしながら、毎回起きるというのではなく、3回に1回程度の頻度で起きます。 特にユーザーフォームが消えるようなことは書いていないのですが なぜこのようなことが起きるのでしょうか? 一応、その消える辺りに If (UserForm1.Visible = False) Then UserForm1.Show vbModeless というのを入れてみましたがうまくいきませんでした。 これはどのようにすれば改善できますでしょうか?

  • アクセスで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件くらいです。 なぜ並べ替えができないのでしょうか? しょうがないからクエリで最初から並べ替えしておきますが、原因を教えてください。

  • ADO VBA 実行時エラー3021

    rs.Open "SELECT * FROM Tログイン WHERE サイト名='" & サイト名 & "'", cn, adOpenStatic, adLockOptimistic rs("日時") = Now() rs.Update このコードを実行しようとしたときに、 実行時エラー3021「BOFとEOFのいずれかTRUEになっているか、 または現在のレコードが削除されています。 要求された操作には、現在のレコードが必要です。」 と言うエラーが発生する場合があるのですが、 どういう意味のエラーなのかが良くわかりません。 ちなみに、 rs("日時") = Now() をコメントアウトして、 rs.Updateのコードを実行しても、同じエラーが発生します。