VBでSQLSERVER6.5にODBC接続し、
トランザクションを開始しようとしたところ、
以下のエラーメッセージが表示されました。
どういうことか教えてください。

db.BeginTrans
実行時エラー '2147168227(8004d01d(';
1つ以上のODBC接続が使用中のため、トランザクションを開始できません。

A 回答 (1件)

他の部分ですでにトランザクションを開始しているところがあるとか


BeginTransをして、commitしてないとか・・・?

この回答への補足

既に開始はしていません・・・。
それに、この場合、既に開始されている、という
メッセージになりますよね?
試しに、トランザクション開始を飛ばして、
commitしようとしたら、
アクティブなトランザクションはありません、とエラーになったので、
開始はされていないと思います。

補足日時:2002/02/21 17:25
    • good
    • 0

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

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Q実行時エラー '8021'とはどんな内容のエラーでしょうか?

VB6 でプログラムを作成していますが、たまに"実行時エラー'8021':DCB (Device Control Block)の取得時に、ポートで内部エラーが発生しました。"というメッセージが表示されプログラムが止まってしまいます。どういった内容のエラーなのか分かりませんので、しっている方がいらっしゃいましたら教えて頂きたいのですが。よろしくお願いします。

Aベストアンサー

誰も回答していないようなので、参考までに。

エラー番号8021を発生させたところ、当方の環境ではそのようなメッセージは表示されず、そのエラーは定義されていないと表示されました。
その事から、そのエラーはVB6標準ではないクラスまたはコントロール等を利用して発生していると思われますので、
その環境をもっと記載しなければ、他の人も回答できないと思います。
(エラーメッセージを見る限りでは、特殊なものを利用しているっぽいので補足説明があっても、私には回答できなさそうですが・・・)

Q実行時エラー'1004': アプリケーション定義またはオブジェクト定義のエラーです。

Excel VBA(Excel2000)について質問です。
セルの入力規則を設定するvalidationプロパティ設定時に表記エラーが起こるのですが、どういった原因なのか知りたいです。
そのエラーを起こす手順ですが、
1. 新規ブックを作成する
2. Visual Basic Editorを使用して、Sheet1に以下のコードを埋めこむ:

Private Sub Worksheet_Activate()
  With Cells(1, 1).Validation
    .Delete
    .Add Type:=xlValidateList, Formula1:="test1,test2"
  End With
End Sub

3. Sheet1 ←→ Sheet2 or Sheet3をタブで切り替える
  → 問題なく作動する
4. Sheet1の任意の場所に、コントロール ツールボックスのコマンドボタンを配置する
5. Sheet1 ←→ Sheet2 or Sheet3をタブで切り替える
  → これも問題なく作動する
6. 4.で配置したコマンドボタンを押す
7. Sheet1 ←→ Sheet2 or Sheet3をタブで切り替える
  → 表題のエラーが発生する

といったように、ボタンやチェックボックス等を配置したシートにおいてvalidation.addメソッドを使用すると、何故かエラーが発生します。この発生パターンが見つかるまでずっと悩んでいました。
今現在は、一応、他の方法で回避できてはいますが、どうしてこのエラーが出るのかはっきりしたいので、ご存知の方はどうぞご指導お願い致します。

Excel VBA(Excel2000)について質問です。
セルの入力規則を設定するvalidationプロパティ設定時に表記エラーが起こるのですが、どういった原因なのか知りたいです。
そのエラーを起こす手順ですが、
1. 新規ブックを作成する
2. Visual Basic Editorを使用して、Sheet1に以下のコードを埋めこむ:

Private Sub Worksheet_Activate()
  With Cells(1, 1).Validation
    .Delete
    .Add Type:=xlValidateList, Formula1:="test1,test2"
  End With
End Sub

3. Sheet1 ←→ Sheet2 or S...続きを読む

Aベストアンサー

> 6. 4.で配置したコマンドボタンを押す

この操作でコマンドボタンがアクティブ状態になってしまうのが原因のようですね。これはチェックボックスとかリストボックス等でも起こると思います。
最も簡単な対処方法としては、Cells(1,1).SelectとかRange("A1").SelectをWith Cells(1, 1).Validation の前に記述し、特定のセルをアクティブにする方法でしょう。

Q実行時エラー’2164’

アクセスVBAで、実行時エラー’2164’
コントロールがフォーカスを取得しているときは、
コントロールを無効にすることはできません
と言うメッセージが出てしまいます。
何が原因なのでしょうか?

Aベストアンサー

例えば下記のようなプログラムは駄目よ。て事

更新後に自分自身のコントロールを使用不可にするようなプログラム

例:テキストボックスで同テキストボックスの内容が更新された場合に同テキストボックスを使用出来ないようにする。
Private Sub テキスト0_BeforeUpdate(Cancel As Integer)
テキスト0.Enabled = False
End Sub

簡単にいうとフォーカスを失っていない状態で自身のコントロールのイベントプログラムで自分自身を使用不可にするような事はしたらあかんて事

Q実行時エラー’1004’

初心者です。EXCEL VBA 音声出力機能を利用したいのですが、以下の
プログラムコードで、アプリケーション定義またはオブジェクト定義
のエラーです とでてしまいました。不具合をどうぞ教えていただけ
ないでしょうか。おねがいします。

  Sub 読み上げ()
Range("B2").Speak SpeakDirection:=xlSpeakByColumns,_
SpeakFormulas:=False
End Sub

Aベストアンサー

Excel2007ではこれで問題なく読み上げてくれますね。

この改行部分は投稿のためのものか
コードにこう書いてあるのかわかりませんが
VBEでの記述は
 xlSpeakByColumns,_
   ではなく、スペースが必要です。
 xlSpeakByColumns, _

QAccess2000 実行時エラー '3061':

Access2000(初心者)
下記コードを実行すると実行時エラー '3061': パラメータが少なすぎます。1を指定してください。と出ます。
※検索したレコードの削除(日付)
CurrentDb.Execute "DELETE * FROM テーブル名 WHERE ((([テーブル名].[日付]) Between #2009/01/01# And テキスト名)); "

テキスト名に入力されているデータがおかしいのでしょうか?
Me.テキスト名 = DateSerial(Format(Date, "yyyy"), Format(Date, "mm")-1, Format(Date, "dd"))
御教授願います。

Aベストアンサー

#1です

申し訳ない、確認して上げたつもりが・・・
> Format("yyyy/mm/dd", Me.テキスト名)
の引数が逆
Format(Me.テキスト名, "yyyy/mm/dd")
と、言うことね


このカテゴリの人気Q&Aランキング

おすすめ情報