• 締切済み

Windows7でレコオープンに時間がかかる

初めて投稿させて頂きます。 今まで自社で開発しているソフトを、エンドユーザー環境は WINDOWS XP PRO/ACCESS2000(インストール)/VB6 SP6(インストール) で納品していました。 ユーザーが処理するインターフェースはVB6のEXEのみ、 データはクライアントPC内にACCESS2000のMDBに格納されるのみです。 この度、エンドユーザーのパソコン新調につき、エンドユーザー環境が WINDOWS7 PRO(SP1なし、HDDはRAID 1)/ACCESS2003(インストール)/VB6 SP6(インストール) となりました。 対応するために、自社の開発環境は今までの旧エンドユーザー環境と同じ WINDOWS XP PRO/ACCESS2000/VB6SP6 で開発し、 テストのため、エンドユーザーからデータを全て格納しているMDBを WINDOWS 7 PROにコピーして移行し、EXEも上記開発環境で作成・コンパイル したものをコピーしてテストしたのですが、作成したVB6プログラムの一つにて、 Visual Basic は応答していません 画面が出て、画面内の問題の詳細の表示をクリックして見てみると、 説明:   問題が発生したため、このプログラムと Windows の対話が停止しました。 問題の署名:  問題イベント名: AppHangB1  アプリケーション名: VB6.EXE ~省略~ と出て、処理が次に進むまで1~3分待たされるという現象が起きます。 以下、その現象が発生するソースコードです。 ------------------------------------------------------------------------ ※ 参照設定はMicrosoft DAO 3.6 Object Library にチェック Dim GlbJETWS As Workspace Dim GlbJETDB As Database Dim strSQL as String Dim rs As Recordset ' lngMSCode は フォーム上の数値 ' lngDno は フォーム上の数値 Set GlbJETWS = Workspaces(0) Set GlbJETDB = GlbJETWS.OpenDatabase("C:\UserData.mdb") strSQL = "SELECT * FROM JISSEKI" strSQL = strSQL & " WHERE MSCode=" & lngMSCode & " AND DNo=" & lngDno Set rs = GlbJETDB.OpenRecordset(strSQL, dbOpenSnapshot) ------------------------------------------------------------------------ 最後の行、 Set rs = GlbJETDB.OpenRecordset(strSQL, dbOpenSnapshot) を処理した段階で起こります。MSCodeとDNoは主キーに設定しており、 JISSEKIテーブルのレコード件数は約32,000件です。 必ず起こるという訳でもなく、一瞬で次に進む場合もあります。 色々調べてみましたが対処法がわからず困っています。 どなたか、対処法が分かる方がおられましたら、ご教授願います。 以下、Visual Basic は応答していません 画面の全文です。 説明: 問題が発生したため、このプログラムと Windows の対話が停止しました。 問題の署名: 問題イベント名: AppHangB1 アプリケーション名: VB6.EXE アプリケーションのバージョン: 6.0.97.82 アプリケーションのタイムスタンプ: 403acf6c 停止時の署名: 437c 停止の種類: 0 OS バージョン: 6.1.7600.2.0.0.256.48 追加の停止時の署名 1: 437c62729313fb05a4c4360af8eaeafb 追加の停止時の署名 2: 93f1 追加の停止時の署名 3: 93f1a3ce5c07082e07212059c24879e4 追加の停止時の署名 4: 437c 追加の停止時の署名 5: 437c62729313fb05a4c4360af8eaeafb 追加の停止時の署名 6: 93f1 追加の停止時の署名 7: 93f1a3ce5c07082e07212059c24879e4

みんなの回答

  • nicotinism
  • ベストアンサー率70% (1019/1452)
回答No.2

残念ながら同じ環境を作れませんので 私から申し上げることはありません。 こちらなどでご質問されては?と思います。 http://ap.atmarkit.co.jp/bbs/core/ Windows7 + VB6 では、32bit・64bit・UAC ・・・の問題も絡んでくるかも? また、『問題が発生したため、このプログラムと Windows の対話が停止しました』 や 『AppHangB1』 で Google ってみてください。 なお、追加の停止時の署名は Google ってもヒットしませんので 解決の糸口にはならないと思います。 一瞬で次に進む場合はキャッシュを読んでいるのかな。 勝手な言い草ではありますが、こちらは閉じずにおいて 新たなコミュニティで質問されて、解決の折にはこちらにも その内容を載せていただきたいと思います。 マルチポストを勧めるような発言なので恐縮です。 ご判断はそちらにお任せいたします。

Office2011
質問者

お礼

UAC等、関連するのかなどは調べてなかったので調べてみます。 その後成果がなかったら、少し他の所でも質問してみようと思います。 どうもありがとうございました。

  • nicotinism
  • ベストアンサー率70% (1019/1452)
回答No.1

確証はありませんが Dim GlbJETWS As Workspace Dim GlbJETDB As Database Dim strSQL as String Dim rs As Recordset ' lngMSCode は フォーム上の数値 ' lngDno は フォーム上の数値 Set GlbJETWS = Workspaces(0) を Dim GlbJETWS As dao.Workspace Dim GlbJETDB As dao.Database Dim strSQL as String Dim rs As dao.Recordset ' lngMSCode は フォーム上の数値 ' lngDno は フォーム上の数値 Set GlbJETWS = dao.dbengine.Workspaces(0) と省略しなかったら?

Office2011
質問者

お礼

nicotinismさん、 早速の回答をありがとうございます。 回答下さった形に変更してみて再試行してみたのですが、 結果は変わらず、改善されませんでした。 Set GlbJETWS = dao.dbengine.Workspaces(0) と記述して下さった所は、 Set GlbJETWS = dao.Workspaces(0) か Set GlbJETWS = dbengine.Workspaces(0) のどちらかでないとダメでしたが、どちらも試して同じでした。

関連するQ&A

  • 問題が発生したため、このプログラムと Windows の対話が停止しました。

    説明: 問題が発生したため、このプログラムと Windows の対話が停止しました。 問題の署名: 問題イベント名: AppHangB1 アプリケーション名: Explorer.EXE アプリケーションのバージョン: 6.0.6000.16386 アプリケーションのタイムスタンプ: 4549b091 停止時の署名: b726 停止の種類: 1 OS バージョン: 6.0.6000.2.0.0.768.3 ロケール ID: 1041 追加の停止時の署名 1: e6c99bebd42bccbf71b39d5aecabd2d2 追加の停止時の署名 2: 04c4 追加の停止時の署名 3: 9931c3fc80fbdac744662acd3f7255ec 追加の停止時の署名 4: 7ca2 追加の停止時の署名 5: 34a1dc7079c6c7689648826f845ebaa4 追加の停止時の署名 6: 9afe 追加の停止時の署名 7: 466b8a68dc7cf3a27d40d83e435f9f02 プライバシーに関する声明をお読みください: http://go.microsoft.com/fwlink/?linkid=50163&clcid=0x0411 というエラーメッセージが出て、デスクトップ、タスクバーが表示されません。どうしたらよいでしょうか?

  • テキストボックスに入れた内容をAccessのテーブルに登録する方法を教えてください。

    はじめまして。 VBでフォームに作ったテキストボックス(text1、text2、text3)に値を入れてコマンドボタンを押したらAccessのテーブルに値を登録できるようにしたいのですが上手くいきません。自分で調べながらコーディングしたのですが上手く動かずどうすれば動くのかVBのコーディングを教えていただきたいです。よろしくお願いします。 [Accessのファイル名] db1.mdb [db1.mdbのテーブル名] ListName [ListNameの各項目] 名前、住所、生年月日 [VBのフォーム] text1.textbox、text2.textbox、text3.textbox Add.command [コーディングの内容] Microsoft DAO 3.6 Object Library参照設定 Private Sub Add_Click() Dim strSQL As String Dim dbName As String Dim dbs As DAO.Database Dim myset As DAO.Recordset Dim ws As DAO.Workspace Set ws = DBEngine.Workspaces(0) Set dbs = ws.OpenDatabase("C:\db1.mdb") If Dir("C:\db1.mdb") <> "" Then strSQL = "INSERT INTO Listname (名前,生年月日, _ 住所) values(text1.text, text2.text, text3.text)" Me.AutoRedraw = True Set myset = dbs.OpenRecordset(strSQL) End If End Sub ※無効な処理です。というエラーが出ます。

  • itunes いつも固まって困っています。 問題エラー名:AppHangB1

    itsunesでいつもPV、音楽など購入してるのですが ここ2週間、いつもitunesを開きストアー行くと必ず固まり 何もできなくなり強制終了です。。。 その際の詳細は 説明: 問題が発生したため、このプログラムと Windows の対話が停止しました。 問題の署名: 問題イベント名: AppHangB1 アプリケーション名: iTunes.exe アプリケーションのバージョン: 8.0.2.20 アプリケーションのタイムスタンプ: 4925c4fe 停止時の署名: bbb0 停止の種類: 2048 OS バージョン: 6.0.6001.2.1.0.768.2 ロケール ID: 1041 追加の停止時の署名 1: bcbfb2e33f444abd4033b2ee59026bca 追加の停止時の署名 2: ea9d 追加の停止時の署名 3: e1a4f133cb0440af00086dfda468b83c 追加の停止時の署名 4: bbb0 追加の停止時の署名 5: bcbfb2e33f444abd4033b2ee59026bca 追加の停止時の署名 6: ea9d 追加の停止時の署名 7: e1a4f133cb0440af00086dfda468b83c どなたか解決案がありましたら教えてください。 PCはWINDOWS VISTAを使用しています。

  • MDBをADO接続でINSERT・UPDATE・DELETE

    VB2005.NETの初級開発者です。 MDBをADO接続で開発を行いたいのですが 記述の方法がわかりませんので教えて下さい。 下記のようなサンプルはネット上でもよく見るのですが INSERT分で記述を行いたいのですが、サンプルが見つかりません よろしくお願いします。 後、CurrentProject.Connection.Execute strSQL, , adCmdTex このような記述をネット上で見るのですがstrSQLにInsert分を 記述すれば良いのですか、わからないので教えて下さい。 また、下記の記述の方がよいのですか? Dim ct As New Connection() Dim rt As New Recordset() ' 接続文字列を設定 ct.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" & _ "Data Source=C:\test.mdb" ' データベースに接続 ct.Open() ' テーブルを指定し、レコードセットをオープン With rt .CursorType = CursorTypeEnum.adOpenDynamic .LockType = LockTypeEnum.adLockOptimistic .Open("Insert_Tbl", ct, , , CommandTypeEnum.adCmdTable) End With ' データを追加 With rt .AddNew() .Fields("aaa").Value = TextBox1.Text .Fields("bbb").Value = TextBox2.Text .Update() End With

  • エラー名:AppHangB1 iexplore.exe 教えてください

    2007年購入のWindows Vistaを使用しています。 MSN JAPANサイトで海外ビデオ付きニュースをクリックしたパソコンがフリーズします。他のサイトでもあります。 ヘルプの問題の解決で以下のメッセージがでました。 説明 問題が発生したため、このプログラムと Windows の対話が停止しました。 問題の署名 問題イベント名: AppHangB1 アプリケーション名: iexplore.exe アプリケーションのバージョン: 7.0.6001.18000 アプリケーションのタイムスタンプ: 47918f11 停止時の署名: 8d76 停止の種類: 6144 OS バージョン: 6.0.6001.2.1.0.768.3 ロケール ID: 1041 追加の停止時の署名 1: af85d3523a476b544530416d7181d56e 追加の停止時の署名 2: 714c 追加の停止時の署名 3: 0b999cb3cb3dc9d2fcae40d0ac7ef489 追加の停止時の署名 4: 8d76 追加の停止時の署名 5: af85d3523a476b544530416d7181d56e 追加の停止時の署名 6: 714c 追加の停止時の署名 7: 0b999cb3cb3dc9d2fcae40d0ac7ef489 この問題に関するその他の情報 バケット ID: 157727958 アドバイスよろしくお願いします。

  • 変数に入った値を追加したい

    Access97を使用しています。SQLで変数に入った値を追加したいのです。 Dim strSQL, NO3, NO2 As String Dim i As Integer Dim db As DATABASE Dim SN As Variant If (C_Flag = 0) Then SN = 0 Else SN = 1 End If strSQL = "INSERT INTO 連続印刷 (Nフラグ" strSQL = strSQL & ") VALUES (" strSQL = strSQL & "', 'SN'" strSQL = strSQL & ")" Set db = CurrentDb() db.Execute strSQL Set db = Nothing End Sub 上記のようにすると、"SN"のデータが入ります。 'SN'をSNのようにすると、パラメータが少なすぎますと出てきます。 どうすれば、上記 0や1の値を取得することができるのでしょうか?

  • ホームページビルダー17でサイト応答なし

    ホームページビルダーでホームページを作成中 他のアプリケーションで、そのページに関連するCSSをいじってから ホームページビルダーの今まで開けていたサイト、ページを開くボタンを押すと すぐに「応答なし」に表示されるようになってしまいました。  ツール→オプション→ビジュアルサイトビュー設定において、「展開レベル」項目の「エラーのあるページまで展開」のチェックを外すと数秒でサイトを開けるようになった。 というのを試したのと 再度ホームページビルダーをインストールし直したのですが解決せず。 タスクマネージャーで表示すると CPU使用率は20~50% で、サイトを開くボタンをおしてすぐに「応答なし」と表示されてしまいます。 エラーの文章は以下のとおりです。 説明: 問題が発生したため、このプログラムと Windows の対話が停止しました。 問題の署名: 問題イベント名: AppHangB1 アプリケーション名: hpbpage.exe アプリケーションのバージョン: 17.0.1.0 アプリケーションのタイムスタンプ: 5046e638 停止時の署名: 5c1f 停止の種類: 0 OS バージョン: 6.1.7601.2.1.0.768.3 ロケール ID: 1041 追加の停止時の署名 1: 5c1f10d8fcf87e3a171b5672c10b53e2 追加の停止時の署名 2: 6fff 追加の停止時の署名 3: 6fff31ee8d0e70c9578aac19712cbcb1 追加の停止時の署名 4: 5c1f 追加の停止時の署名 5: 5c1f10d8fcf87e3a171b5672c10b53e2 追加の停止時の署名 6: 6fff 追加の停止時の署名 7: 6fff31ee8d0e70c9578aac19712cbcb1 何かわかる方いらっしゃったらおしえてください。 よろしくお願いします。 使用しているのはWIN7です。

  • レコードの削除

    VB6.0 ACCESSで開発しています。 t_nyukoテーブルのデータを全て削除するのは下記のように 出来たのですが dataGridに表示されているものを1つ選択し 選択されたものだけ削除したいのですがどうすればいいのでしょうか? よろしくお願いします。 Private Sub Command1_Click() Dim cn As New ADODB.Connection Dim cmd As ADODB.Command Dim cat As New ADODB.Command Dim strSQL As String   Set cn = New ADODB.Connection cn.ConnectionString = _ "Provider=Microsoft.Jet.OLEDB.4.0;" & _ "Data Source=C:\temp\db2.mdb" cn.Open cat.ActiveConnection = cn strSQL = "DELETE FROM t_nyuko " Set cmd = New ADODB.Command cmd.ActiveConnection = cn cmd.CommandText = strSQL cmd.Execute cn.Close Set cmd = Nothing Set cn = Nothing Set cat = Nothing End Sub

  • デスクトップにフォルダなどが作れなくなります

    Win7 64Bit  IE9 を使っています。 IEを使っている分には問題はないのですが、 何時間かパソコンを使っているうちにデスクトップで右クリック、フォルダやテキストを作成すると固まってしまいます。(マウスは動きます) そしてなんどかクリックをしていると、エラーのポップアップが表示され、 詳細を見ると、下記のように書かれています。 ------------------------------------ 説明: 問題が発生したため、このプログラムと Windows の対話が停止しました。 問題の署名: 問題イベント名: AppHangB1 アプリケーション名: explorer.exe アプリケーションのバージョン: 6.1.7600.16768 アプリケーションのタイムスタンプ: 4d688122 停止時の署名: 1645 停止の種類: 513 OS バージョン: 6.1.7600.2.0.0.256.1 ロケール ID: 1041 追加の停止時の署名 1: 164533f5d622452bf2531d186c321aa6 追加の停止時の署名 2: 3417 追加の停止時の署名 3: 3417773b4eca586866ecf3b48e7abdd3 追加の停止時の署名 4: 1645 追加の停止時の署名 5: 164533f5d622452bf2531d186c321aa6 追加の停止時の署名 6: 3417 追加の停止時の署名 7: 3417773b4eca586866ecf3b48e7abdd3 オンラインのプライバシーに関する声明をお読みください: http://go.microsoft.com/fwlink/?linkid=104288&clcid=0x0411 オンラインのプライバシーに関する声明が利用できない場合は、プライバシーに関する声明をオフラインでお読みください: C:\Windows\system32\ja-JP\erofflps.txt ------------------------------------ IE9の再起動後、作ろうとしたフォルダはデスクトップに作られています。 パソコンを起動したときなど、使い始めはデスクトップで右クリック、フォルダやテキストを作成出来ます。 IEをリセットしてみたり、こちらに書いてみることをやってみましたが改善しません。 http://pasofaq.jp/program/internetexplorer/apphangb1.htm どうかよろしくお願いいたします。

  • ODBC使用時の正しい記述方法

    データベース初心者です。 ODBCの正しい記述方法についてご教示願います。 以下のソースでデータベース間のテーブルコピーを試したところができるものとできないものがあります。 テーブルはすべて作成済み、Windows認証です。  環境 OS:WidowsXp、Access2003、Excel2007、SQL ServerExpress2008 (1)SQL Server ⇒ SQL Server  記述の方法に問題があるようなメッセージです。  ドライバやテーブルの指定が同様な記述で(4)や(5)がOKなのに(1)ではNGです。DRIVER指定ができないようです。 エラーメッセージ "[Microsoft][ODBC SQL Server Driver][SQL Server]オブジェクト名 'odbc;DRIVER=SQL Server;Server=Server1\\SQLEXPRESS2;Database=TEST1;Integrated Security=SSPI;.TABLE1' が無効です。" (2)は仕様上出来ないのでしょうか? エラーメッセージ "[Microsoft][ODBC Microsoft Access Driver] ODBC を使用して、外部 Microsoft Jet データベース エンジンのテーブルや組み込み可能な ISAM データベースのテーブルのインポート、エクスポート、またはリンクを行うことはできません。" 実用上はOLEを使用しているので問題はありませんが、向学のためによろしくお願いします。 /////////////////////////// ソース ///////////////////////////////////// (1)SQL Server ⇒ SQL Server 動作NG Sub sqlsvr2sqlsvr() Dim cn As New ADODB.Connection Dim strSQL As String cn.Open "DRIVER={SQL Server};Server=Server1\SQLEXPRESS1;Database=TEST1" strSQL = "INSERT INTO [odbc;DRIVER=SQL Server;" & _ "Server=Server1\SQLEXPRESS2;Database=TEST1;" & _ "Integrated Security=SSPI;].TABLE1 " & _ "SELECT * FROM TABLE1" cn.Execute strSQL cn.Close Set cn = Nothing End Sub (2)Excel ⇒ Access 動作NG Sub Access2Excel() Dim cn As New ADODB.Connection Dim strSQL As String cn.Open "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=C:\TEST1.MDB" strSQL = "INSERT INTO [DRIVER={Microsoft Excel Driver (*.xls)};" & _ "DBQ=C:\TestBook.xls;ReadOnly=False].[Sheet1$] " & _ "SELECT * FROM TABLE1" cn.Execute strSQL cn.Close Set cn = Nothing End Sub (3)Excel ⇒ Excel 動作OK Sub Excel2Excel() Dim cn As New ADODB.Connection Dim strSQL As String cn.Open "odbc;DRIVER={Microsoft Excel Driver (*.xls)};DBQ=C:\TestBook.xls;ReadOnly=False;" strSQL = "INSERT INTO [C:\TestBook2.xls].[Sheet1$]" & _ "SELECT * FROM [Sheet1$]" cn.Execute strSQL cn.Close Set cn = Nothing End Sub (4)Access ⇒ SQL Server 動作OK Sub access2sqlsvr() Dim cn As New ADODB.Connection Dim strSQL As String cn.Open "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=C:\TEST0.MDB" strSQL = "INSERT INTO [odbc;DRIVER=SQL Server;" & _ "Server=Server1\SQLEXPRESS1;Database=TEST1;" & _ "Integrated Security=SSPI;].TABLE1 " & _ "SELECT * FROM TABLE1" cn.Execute strSQL cn.Close Set cn = Nothing End Sub (5)Excel ⇒ SQL Server 動作OK Sub excel2sqlsvr() Dim cn As New ADODB.Connection Dim strSQL As String cn.Open "DRIVER={Microsoft Excel Driver (*.xls)};DBQ=C:\TestBook.xls;ReadOnly=False;" strSQL = "INSERT INTO [odbc;DRIVER=SQL Server;" & _ "Server=Server1\SQLEXPRESS1;Database=TEST1;" & _ "Integrated Security=SSPI;].TABLE1 " & _ "SELECT * FROM [Sheet1$]" cn.Execute strSQL cn.Close Set cn = Nothing End Sub (6)Access ⇒ Access 動作OK Sub Access2Access() Dim cn As New ADODB.Connection Dim strSQL As String cn.Open "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=C:\TEST0.MDB" strSQL = "INSERT INTO T_写真台帳1 SELECT * FROM [C:TEST1.MDB].T_写真台帳" cn.Execute strSQL cn.Close Set cn = Nothing End Sub

専門家に質問してみよう