• 締切済み
  • すぐに回答を!

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

共感・応援の気持ちを伝えよう!

  • 回答数2
  • 閲覧数1602
  • ありがとう数2

みんなの回答

  • 回答No.2

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

共感・感謝の気持ちを伝えよう!

質問者からのお礼

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

関連するQ&A

  • レコードの削除

    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

  • DAOでデータベースを二つ開くには?

    環境 Windows2000 VB6 DAOで同じデータベースを開くためのやり方がわかりません。 下記のようにマスタのキーを使用して他のテーブルの 内容を更新したいのですが よろしくお願いします。m(__)m Dim ws As Workspace Dim db As Database Dim qd As QueryDef Dim rs As Recordset Dim STRSQL As String dim strsql2 as string Set ws = DBEngine.Workspaces(0) Set db = ws.Databases(0) STRSQL = "SELECT KEY FROM マスタ" Set qd = db.CreateQueryDef("", STRSQL) Set rs = qd.OpenRecordset() Do While Not rs.EOF strsql2 = "Update data from マスタ where key = " & rs!key ???? rs.MoveNext Loop rs.Close qd.Close db.Close

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

    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の値を取得することができるのでしょうか?

  • 回答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) と省略しなかったら?

共感・感謝の気持ちを伝えよう!

質問者からのお礼

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

関連するQ&A

  • Yes/Noフラグの値をコピーできない

    すいません。ACCESS2003 VBAで下記の問題で困っています。 新たに作成したmdbファイル(テーブルの中身は空)に既存のmdbファイルのテーブル内容をコピーしたいのですが、Yes/Noフラグ型だけ移行できません。一応サンプルのソースです↓ Dim db As DAO.Database Dim RS As DAO.Recordset Dim strsql As String コピー元のmdbファイルをオープン Set db = OpenDatabase("コピー元mdb") 'SQLの生成 strsql = "" strsql = strsql & " SELECT * FROM テーブル名" 'レコードセット生成 Set RS = db.OpenRecordset(strsql, dbOpenSnapshot, dbReadOnly) 'コピー元テーブルにデータがあるか判定 If RS.RecordCount = 0 Then msgbox "データがありません" Else RS.MoveFirst 'コピー先のデータベースを設定 Set db = OpenDatabase("コピー先mdb") 'レコードの初期化 db.Execute (DELETE FROM コピー先テーブル名) Do While RS.EOF = False strsql = "" strsql = strsql & " INSERT INTO コピー先テーブル名(" strsql = strsql & " ,コピー先のYes/Noフラグ値" ' strsql = strsql & ")VALUES(" strsql = strsql & " ,'"コピー元のYes/Noフラグ値 "' " strsql = strsql & ")" db.Execute (strsql) RS.MoveNext Loop End If RS.Close db.Close

  • access97でのFunctionプロシージャの使い方

    Access97で作業しています。 以下の記述で定義したレコードセットを同一の*.mdbのなかで共有したい(他のイベントプローシージャで呼びたい)のですが、どのようにするのでしょうか? これをFunctionプローシージャにする? Public にする? それと、このプロシージャで定義した変数名は他のイベントプロシージャでも使えるのでしょうか? プロシージャの性質も良く判らない状態です。宜しくお願い致します。 Dim strSQL As String Dim i, j, TOL, cnt As Integer Dim rsFLT, rsTBL As DAO.RecordSet Dim DB As Database Set DB = CurrentDb strSQL = "SELECT * FROM [Q-Order用] WHERE ID='" & [Forms]![F-Order用]![IDbox] & "'" Set rsFLT = DB.OpenRecordset(strSQL)

  • 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を使用しています。

  • ADO.NETのDataSetのコピー

    ADO.NETでsdfファイルからmdbファイルへテーブル(TBL1)を移行させたいと思っています。 以下のようなコードでDataSetをコピーできないか試しましたが、移行できません。 sdf、mdbともテーブルのカラムの構造は同一です。 mdbの方にはレコードが空のテーブルが用意してあります。 何が間違っているのでしょうか?お教えいただけると助かります。 SDF Dim con As SqlCeConnection = DBUtility.GetConnection() con.Open() Dim strSQL As String strSQL = "select * from TBL1" Dim adapter As SqlCeDataAdapter = _ New SqlCeDataAdapter(New SqlCeCommand(strSQL, con)) con.Close() Dim ds1 As DataSet = New DataSet() adapter.Fill(ds1, "TBL1") Dim con2 As OleDbConnection = DBUtility.GetOLEConnection() con2.Open() 'MDB Dim strSQL2 As String strSQL2 = "select * from TBL1" Dim adapter2 As OleDbDataAdapter = _ New OleDbDataAdapter(New OleDbCommand(strSQL2, con2)) Dim ds2 As DataSet = New DataSet() ds2 = ds1.Copy Dim cb As OleDbCommandBuilder = New OleDbCommandBuilder(adapter2) adapter2.Update(ds2, "TBL1")

  • Windows7 64bitにしてからというもの・・・

    PCでゲームをやっていると長くても10分でCTDしてしまいます。 ハードウェアの動作環境は満たしています。エラー内容は・・・ 問題が発生したため、このプログラムと Windows の対話が停止しました。 問題イベント名: APPCRASH アプリケーション名: Fallout3.exe アプリケーションのバージョン: 1.7.0.3 アプリケーションのタイムスタンプ: 4a40f18b 障害モジュールの名前: Fallout3.exe 障害モジュールのバージョン: 1.7.0.3 障害モジュールのタイムスタンプ: 4a40f18b 例外コード: c0000005 例外オフセット: 0048503d OS バージョン: 6.1.7600.2.0.0.768.3 ロケール ID: 1041 追加情報 1: 0a9e 追加情報 2: 0a9e372d3b4ad19135b953a78882e789 追加情報 3: 0a9e 追加情報 4: 0a9e372d3b4ad19135b953a78882e789 ゲームの掲示板でも聞いたり検索してみましたが該当は特に無く困っていまっす。再インストール試したり、パッチを最新から古いものまで試したりしましたがことごとく落ちる・・・ これはWindows7 64bitだからでしょうか?

  • エラー名: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 アドバイスよろしくお願いします。

  • ホームページビルダー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で、抽出したデータのソートについて

    はじめまして。 どうしても分からないので、どなたかご教授頂けたらと思います。 VB6で、抽出したデータのソートを行いたいと思います。 大まかな流れは以下の通りです。 Dim objDb As Database Dim objTbl As Recordset   'mdbファイルからデータを抽出   Set objTbl = objDb.OpenRecordset(データ抽出条件式) (1)レコードセットした、objTblにフィールドを1つ追加したい。 (2)その追加したフィールドにデータを入れる。 (3)入れたデータで降順にソートしたい。 どうしても出来ないので、元のmdbから任意のフィールドを取得してきて、 そこに必要なデータを入れてソートしようとしたら、 .updateでmdb自体のデータを更新しないと出来ませんでした・・・ (mdbファイルは更新・変更等の操作を行ってはダメなファイルです。) この後の処理があるので、レコードセットしたobjTbl (もしくはそのコピーでもいいのですが・・・)を使った形で、出来ると良いのですが・・・ どうぞ、よろしくお願いいたします。

  • テキストボックスに入れた内容を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 ※無効な処理です。というエラーが出ます。

  • Excelファイルのデータをテーブルへインポートできない

    お世話になります。 このコードは「ここが知りたかった!ACCESS VBA 500の技」 の452ページに載っているものです。 エラーで動作しません。 私には分からないので教えて下さい。 Sub ExceltoMDBTable() Dim adoExcelCon As New ADODB.Connection Dim adoSheetRst As ADODB.Recordset Dim strSQL As String Dim adoMdbCon As New ADODB.Connection adoExcelCon.Open "Driver={Microsoft Excel Driver (*.xls)};" & _ "DBQ=c:\temp\test.xls;ReadOnly=0;" Set adoMdbCon = Application.CurrentProject.Connection Set adoSheetRst = adoExcelCon.Execute("select distinct 得意先コード,得意先名 from [Sheet1$]") Do Until adoSheetRst.EOF = True strSQL = "" strSQL = strSQL & "insert into test" strSQL = strSQL & " (得意先コード" strSQL = strSQL & " ,得意先名" strSQL = strSQL & " ,登録日 )" strSQL = strSQL & "Values ( '" & adoSheetRst("得意先コード") & "'" strSQL = strSQL & " ,'" & adoSheetRst("得意先名") & "'" strSQL = strSQL & " ,#" & Date & "# )" adoMdbCon.Execute (strSQL) adoSheeyRst.MoveNext Loop adoSheetRst.Close adoMdbCon.Close adoExcelCon.Close Set adoSheetRst = Nothing Set adoMdbCon = Nothing Set adoExcelCon = Nothing End Sub