• ベストアンサー

ACCESSでステータスバーにインジケータを表示する方法

★T_1 ・・・ビル名,電話番号 T_1テーブルに登録されてあるすべてのレコードにアクセス し、その間、インジケータを表示させたいと思っています。・・・が上手くいきませんTT 手順があっているかご指導宜しくお願いいたします。 (1)フォームを作成して非連結のテキストボックスを2つ作りました。(テキストボックス名→ビル名,電話番号にしました)さらにコマンドボタン(調査)を一つ作りました。 (2)コマンドボタンに以下のVBAを記述しました。 Private Sub 調査_Click() Dim cn As ADODB.Connection Dim rs As New ADODB.Recordset Dim cnt As Integer Dim i As Integer Dim j As Long Set cn = CurrentProject.Connection rs.Open "T_1", cn, adOpenStatic,LockOptimistic cnt = rs.RecordCount SysCmd acSysCmdInitMeter, "処理中です・・・", cnt For i = 0 To cnt - 1 Me.ビル名 = rs.ビル名 Me.電話番号 = rs.電話番号 Me.Repaint SysCmd acSysCmdUpdateMeter, i rs.MoveNext For j = 0 To 1000000 Next j Next i SysCmd acSysCmdRemoveMeter rs.Close: Set rs = Nothing cn.Close: Set cn = Nothing End Sub 以上のように記述しコマンドボタンを押すと「メソッドまたはデータメンバが見つかりません」とエラーメッセージがでます。これはどういうことなのでしょうか?宜しくお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
  • maruru01
  • ベストアンサー率51% (1179/2272)
回答No.1

こんにちは。maruru01です。 実際のコードが質問欄の通りなら、以下のところが入力ミスになっていると思います。 × rs.Open "T_1", cn, adOpenStatic,LockOptimistic ○ rs.Open "T_1", cn, adOpenStatic,adLockOptimistic 第4引数(locktype)が違います。 これ以外は間違いはないと思いますが・・・

nekocya
質問者

補足

お返事ありがとうございます。質問する際に間違えました。ちゃんとadLockOptimisticにしています(TT)

その他の回答 (2)

  • happypoint
  • ベストアンサー率36% (521/1422)
回答No.3

>SQLステートメントが正しくありません >rs.Open "T-NTT",cn,dOpenStatic,adLockOptimistic T-NTTというのはクエリですか? SQLの内容も、T-NTTについても言及されていないので、 なんともいえないのですが。 文字通り、T-NTTのSQL文の内容が間違っているのではないですか? チェックされました?

nekocya
質問者

補足

お返事ありがとうございます。 T-NTTはテーブルです。 なぜこのようなメッセージがでるか分からないです。。

  • happypoint
  • ベストアンサー率36% (521/1422)
回答No.2

こんにちは。  Me.ビル名 = rs![ビル名]  Me.電話番号 = rs![電話番号] とすべきところが、  Me.ビル名 = rs.ビル名  Me.電話番号 = rs.電話番号 になっちゃってます。

nekocya
質問者

補足

ありがとうございます。言われた通りやってみたところ 今度はSQLステートメントが正しくありませんとエラーメッセージがでています。デバックで戻ると rs.Open "T-NTT", cn,dOpenStatic,adLockOptimistic の部分が選択されていますTT

関連するQ&A

  • Accessで、メモリを開放するタイミング

    すみませんが、教えてください。 次のコードように、SQL命令を2回以上行う場合、メモリの開放は、最後だけでよいのでしょうか? これでも、一応動くのですが、メモリを余計に消費していないのかどうか、よく分かりません。 SUB SAMPLE() Dim CN As ADODB.Connection Dim RS As ADODB.Recordset Dim SQL As String '接続 Set CN = CurrentProject.Connection 'レコードセットを取得(1) Set RS = New ADODB.Recordset SQL = "SELECT COUNT(*) AS CNT FROM 生徒名簿 WHERE クラス = 'TS'" RS.Open SQL, CN, adOpenKeyset, adLockOptimistic Msgbox(CNT) 'レコードセットを取得(2) Set RS = New ADODB.Recordset SQL = "SELECT COUNT(*) AS CNT FROM 生徒名簿 WHERE クラス = 'WS'" RS.Open SQL, CN, adOpenKeyset, adLockOptimistic Msgbox(CNT) '終了 RS.Close: Set RS = Nothing CN.Close: Set CN = Nothing End Sub

  • access 初心者です。

    Private Sub 患者番号_AfterUpdate() Dim Cn As ADODB.Connection Dim Rs As ADODB.Recordset Set Cn = CurrentProject.Connection Set Rs = New ADODB.Recordset Rs.Open "[tbl個人情報]", Cn, adOpenKeyset, adLockOptimistic Rs.Find "[患者番号] = " & Me![患者番号] If Rs.EOF Then MsgBox "レコードが見つかりません。ID=" & Me![患者番号] Else Me![性] = Rs![性] End If Rs.Close: Set Rs = Nothing Cn.Close: Set Cn = Nothing End Sub 上記の式を見よう見まねで作成したのですが、エラーが出てしまします。          Me![性] = Rs![性]  が見つかりません どのように解釈すれば良いのでしょうか? ちなみに、サブフォームに入れているテキストボックスの「[性]を 同じサブフォーム内の[患者番号]から検索がしたいです。 初歩的なことで申し訳ございません。よろしくお願いします。

  • MSアクセスで抽出した結果が何もなかった場合

    こんにちは。コンボボックスに入力した言葉でフィルターをかけるため下記のように記載しました。 ヒットした場合は問題ないのですが、ヒットしなかった場合、エラーが出ます。ヒットしなくてもエラーとせず、”ありません”のようにメッセージを出すにはどのようにすればよいのでしょうか? 宜しくお願いします。 Dim rs As New ADODB.Recordset Dim cn As ADODB.Connection Dim DETA1(1 To 10) i = 1 Set cn = CurrentProject.Connection Set rs = New ADODB.Recordset DBnm = Me.CYUSYUTSU.Value KI = Me.KeyWord2.Value rs.Open DBnm, cn, adOpenKeyset, adLockOptimistic '********************************************** rs.Filter = "Tget='" & KI & "'" TI = rs!管理番号 NM = rs!名前 Do Until rs.EOF DETA1(i) = rs!地域 i = i + 1 rs.MoveNext Loop

  • アクセス VBAのエラー

    以下のコードをwindowsXPで問題なく使っていましたが、windows7で使ったところ 「保存できません」というエラーメッセージが出ます。ただ全く同じコードを(だと思うのですが)リストボックスのダブルクリックで実行すると作動します。参考に二つのコードを書いておきます。 何か原因に心当たりのある方よろしくお願いします。 (コマンドボタン) Private Sub コマンド選択_Click() Dim namecode As String namecode = リスト会員 Dim cn As New ADODB.Connection Dim rs As New ADODB.Recordset Set cn = CurrentProject.Connection rs.Open "MT_会員", cn, adOpenKeyset, adLockOptimistic rs.Find "会員IDkai = " & namecode rs!Selectedkai = True '-1 rs.Save Me!リスト会員.Requery リスト印刷会員.Requery rs.Close: Set rs = Nothing cn.Close: Set cn = Nothing End Sub (ダブルクリック) Private Sub リスト会員_DblClick(Cancel As Integer) Dim namecode As String namecode = リスト会員 Dim cn As New ADODB.Connection Dim rs As New ADODB.Recordset Set cn = CurrentProject.Connection rs.Open "MT_会員", cn, adOpenKeyset, adLockOptimistic rs.Find "会員IDkai = " & namecode rs!Selectedkai = True '-1 rs.Save Me!リスト会員.Requery リスト印刷会員.Requery rs.Close: Set rs = Nothing cn.Close: Set cn = Nothing End Sub

  • ACCESS VBA

    ACCESSで検索フォームを作りたいと思っています。 VBAを使って行きたいと思うのですが、うまくいきません。 希望としては、該当するレコードのデータを抽出したいです。 よろしくお願いいたします。 ※現段階でのソースを書いてみました。 最終的に行いたい処理とは違うのですが、根本的に間違っているようなので簡略化しました。 /------------------------------------------------/ Private Sub コマンド1_Click() Dim cn As ADODB.Connection Dim rs As ADODB.Recordset Dim sql As String '接続 Set cn = CurrentProject.Connection 'レコードセットを取得 Set rs = New ADODB.Recordset sql = "SELECT * FROM 従業員データ " & _ "WHERE 年齢=30" rs.Open sql, cn, adOpenDynamic, adLockReadOnly rs.Close: Set rs = Nothing cn.Close: Set cn = Nothing End Sub /------------------------------------------------/

  • Access ADOについて質問です。

    Access ADOについて質問です。 以下コードでレコードセットを返す関数を使用しています。 動作的には問題ないのですが、標準モジュール内のレコードセットをClose及びNothingしていないのが気になります。 Private Sub Form_Open(Cancel As Integer) Dim rs2 As ADODB.Recordset Set rs2 = New ADODB.Recordset Set rs2 = CreateRecordSet("SELECT * FROM T_Standard;") Set Me.Recordset = rs2 rs2.Close: Set rs2 = Nothing end sub '標準モジュール Public Function CreateRecordSet(strSQL As String) As ADODB.Recordset Dim cn As ADODB.Connection Dim rs As ADODB.Recordset Set cn = New ADODB.Connection cn.ConnectionString = "provider=Microsoft.Jet.OLEDB.4.0;" _ & "Data Source=O:\標準DB\StandardBackEnd.mdb" cn.Open Set rs = New ADODB.Recordset rs.Open strSQL, cn, adOpenStatic, adLockReadOnly Set CreateRecordSet = rs ' rs.Close: Set rs = Nothing   ←この部分 ' cn.Close: Set cn = Nothing   ←この部分 End Function 標準モジュール内ではCloseやNothingしなくてもメモリの開放は行われているのでしょうか? アドバイスよろしくお願いいたします。

  • Accessでの検索結果表示

    Accessでの検索画面を作っているのですが *検索項目* ・顧客ID ・電話番号 ・氏名(前方一致で検索したい) *顧客テーブル* ・顧客ID ・電話番号 ・氏名 ・氏名カナ ・住所 3つを複合的な検索項目として、検索ボタンを押下した際に フォーム上のテキストボックスに顧客テーブルから 検索した住所を表示させたいと思っています。 現在、顧客コードだけを 検索項目として以下のようなコードを記述しているのですが これでさえもうまくいきません。 *************************** Dim cn As New ADODB.Connection Dim rs As New ADODB.Recordset Dim strRet As String Set cn = CurrentProject.Connection rs.Open "顧客テーブル", cn, adOpenKeyset, adLockOptimistic strRet = "顧客ID='" & Me!CustmID & "' " rs.Find strRet If Not rs.EOF Then Me.Address = rs!住所 Else: MsgBox "該当なし" End If rs.Close: Set rs = Nothing cn.Close: Set cn = Nothing End Sub **************************** 現状、何が悪いのかそしてどのようにこのプログラムを 改良すれば本来やりたいことができるのか 教えていただけますでしょうか。よろしくお願いいたします。

  • ACCESS SQLで複数データ表示させるには?

    *************************************************** Private Sub Form_Load() Dim cn As New ADODB.Connection Dim rs As New ADODB.Recordset Set cn = CurrentProject.Connection mySQL = "select * from テーブル" rs.Open mySQL, cn, adOpenForwardOnly, adLockOptimistic ’コントロールに代入 Me.No = rs![No] Me.項目 = rs![項目] ・・・ End Sub *************************************************** こんな感じで、クエリでなくSQLで フォームにテーブルの全レコードを表示させたい場合、 どのようにすればよいのでしょうか? 上の文には、何が不足しているのでしょうか? http://www.accessclub.jp/ado/09.html を見ましたが、解決できませんでした。

  • アクセスVBA。ADO

    CSVから列を分割してテーブルにしたいかったので 下記のコードを記述しましたが、 Dim cn As ADODB.Connection Dim rs As New ADODB.Recordset Dim datacount As Long Set cn = New ADODB.Connection With cn .ConnectionString = "Provider=Microsoft.jet.OLEDB.4.0;Data Source=" & CurrentProject.Path & "\;" .Properties("Extended Properties").Value = "text;HDR=YES;" .Open End With Set rs = cn.Execute("SELECT * FROM 構成マスタ.csv") datacount = rs.Fields.Count For i = 0 To datacount strsql = "SELECT " & rs.Fields(i).Name & " INTO " & rs.Fields(i).Name & " FROM 構成マスタ.csv;" cn.Execute strsql Next i rs.Close cn.Close Set rs = Nothing Set cn = Nothing SQLを実行するところで、「日付エラー」となってしまいます。 データには特に日付等はないのでエラーになる原因がわかりません。 どなたかご教示いただけますでしょうか。

  • Excel実行時エラー[80004005]について

    ExcelのVBAにてSQLのSELECT文を実行し、取得したデータを一覧表示する仕組みを作っています。 同じプログラムを使用者する者7名の内、1名のみ以下のエラーが発生しています。 どのように対応すればよいか、ご教示ください。 環境 Excel2010 状況 SELECTの実行時 「実行時エラー[80004005] [Microsoft][ODBC Driver Manager] データ ソース名および指定された既定のドライバーが見つかりません。」 実行ソース Private Sub exeSelect(sheetNm as string ,sqlSt as String) Dim i As Integer Dim j As Integer Dim cn As ADODB.Connection Dim rs As ADODB.Recordset Dim bookNm As String bookNm = ThisWorkbook.FullName Set cn = New ADODB.Connection cn.Provider = "MSDASQL" cn.ConnectionString = "Driver={Microsoft Excel Driver (*.xls)};" & "DBQ=" & bookNm & "; ReadOnly=False;" cn.Open←ここでエラー Set rs = New ADODB.Recordset rs.Open sqlSt, cn, adOpenStatic j = START_ROW Do Until rs.EOF For i = 0 To rs.Fields.Count - 1 Worksheets(sheetNm).Cells(j, i + 1).Value = rs(i).Value Next j = j + 1 rs.MoveNext Loop rs.Close cn.Close End Sub

専門家に質問してみよう