ACCESSは2000です。
どうかよろしくお願いします。
ソースを書いてくださってもいいですし、ホームページでもいいですので・・・

A 回答 (2件)

VBの参照設定で


Microsoft Access 9.0 Object Library
のチェックをONにしてください。


sghさんの言われているとおり、自Accessアプリ内の制御は基本的にDoCmdを使用します。

VB6や外部のAccessなど(Office製品のVBA全て)から使用するのであれば、頭に対象となるAccess.Applicationの情報を付加するだけで、対象のAccessオブジェクトのDoCmd命令を実行することができます。


Sub subAccReportPrint()
  Dim accApp As Access.Application
  
  'Access の新しいインスタンスを作成
  Set accApp = CreateObject("Access.Application")
  
  'データベースを Access ウィンドウで開く
  accApp.OpenCurrentDatabase "c:\test.mdb"
  
  '印刷
  accApp.DoCmd.OpenReport "レポート名", acViewNormal
  
  '現在開いているデータベースを閉じる
  accApp.CloseCurrentDatabase
  
  'インスタンス破棄
  Set accApp = Nothing
End Sub

参考URL:http://oshiete1.goo.ne.jp/kotaeru.php3?q=37226
    • good
    • 0

VB6からACCESSですか?それともVBA..



VBAからなら
DoCmd.OpenReport "レポート名", acViewNormal
となります。
外していたらごめんなさい。
    • good
    • 0

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

このQ&Aを見た人はこんなQ&Aも見ています

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

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

QAccess2007でAccess2000のモジュールを動かす

いつもお世話になります。
Access2007でAccess2000のモジュールを動かすことができなくて困っています。
新しい職場のPCが全てAccess2007に変わってしまいました。
今までは、Access2000でした。そのとき作成したフォームモジュールがAccess2007で全く動作しなくなり困っています。
Access2007でAccess2000ファイルはそのまま読み込み、フォーム自体は表示されます。しかし、VBで作成したモジュールが全く動作しません。
自宅では、Access2000のままですので、Access2000をAccess2007のファイルに変換することなくAccess2000のフォームモジュールを動かす方法はあるのでしょうか。
よろしくお願いします。

Aベストアンサー

>そのとき作成したフォームモジュールがAccess2007で全く動作しなくなり困っています
どういうメッセージが表示されたのか、何も表示されずに動かないのかわかりませんが、最近Access2000->access2007を行いました。
私の場合は次の2点の修正で動きました。

まず、Ofiice2007系でのセキュリティの強化によって、信頼できる場所か信頼できる発行元の設定が必要です。
http://our-plaza.sakura.ne.jp/ac2007/ac2007.html

2007以前で使えたFileSearch関数が使えなくなった。
http://support.microsoft.com/kb/935402/ja

QAccess2000にExcel2000のデータを読み込みたい。

Access上のVBAでExcelよりデータを読み込もうと思います。
最終行を求めるに xlUp を使用しようと思いましたが、

#実行時エラー '1004'
#Rangeクラスの Select メソッドが失敗しました。

となります。

どこをがおかしいでしょうか?


  Dim wb As Excel.Workbook
  Dim ws As Excel.Worksheet

  Set wb = GetObject(C:\abc.xls")  '---オープン確認
  Set ws = wb.Worksheets("Sheet1")

  ws.Range("A65536").Select   '----実行時エラー
  ws.Selection.End(xlUp).Select  
  
  


また、abc.xlsにマクロが含まれているためにマクロを有効にするかどうかの確認メッセージがでます。これを有効、無効どちらでもいいですが、メッセージ無しに開くにはどうすればいいでしょうか?

Aベストアンサー

 Selectメソッドは選択しようとしているセルを含むワークシートがアクティブではないと失敗するため、ほかのメソッドの実行に成功するような場合でもSelectメソッドはエラーになる可能性があります。実際、GetObject関数ではワークブックを非表示状態で開いているため、Selectメソッドが失敗しているのです。このため、Selectメソッドを実行する前に
wb.Application.Windows("abc.xls").Visible = True
としてワークブックを再表示しておく必要があります。

>メッセージ無しに開くにはどうすればいいでしょうか?
 確認メッセージはGetObject関数を実行すると直ちに表示されるので、ActiveXオブジェクトを開いた後に確認メッセージを抑止するための処理を記述する余地はありません。また、GetObject関数はActiveXオブジェクトを開くための汎用的な関数であり、個別のActiveXオブジェクト用のオプションをつけることはできないため、ActiveXオブジェクトを開くときに確認メッセージを抑止する手段もありません。ですから、GetObject関数を使う限りは確認メッセージ無しにExcelワークブックを開くことは不可能だと思います。


 というわけで、素直にDoCmd.TransferSpreadsheetメソッドでテーブルにデータを読み込むのが無難です。
  DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel9, "テーブル名", "C:\abc.xls", False
(末尾のBooleanは、先頭をフィールド名として読み込むのであればTrueにして下さい)

 Selectメソッドは選択しようとしているセルを含むワークシートがアクティブではないと失敗するため、ほかのメソッドの実行に成功するような場合でもSelectメソッドはエラーになる可能性があります。実際、GetObject関数ではワークブックを非表示状態で開いているため、Selectメソッドが失敗しているのです。このため、Selectメソッドを実行する前に
wb.Application.Windows("abc.xls").Visible = True
としてワークブックを再表示しておく必要があります。

>メッセージ無しに開くにはどうすればいいでしょ...続きを読む

QVBのソース上からAccessのmdbファイルのクエリを呼び出す

Accessのmdbファイルにクエリを登録したのですが、これをVB側から呼び出すやり方がわかりません。どなたか教えてもらえないでしょうか?
あと、引数がついた場合もお教え願いないでしょうか。

Aベストアンサー

参照設定でMicrosoft DAO3.5 ObjectLibraryを設定して

Private Sub cmd1_Click()

Dim db As DAO.Database
Dim qd As DAO.QueryDef
Dim rs As DAO.Recordset

Set db = DBEngine.OpenDatabase("フルパス\ファイル名.mdb") 'DBに接続する。

Set qd = db.QueryDefs("クエリ名") 'クエリーを呼び出す
  qd.Parameters("パラメタ名").Value = 値 'パラメータ名を指定して値を設定

Set rs = qd.OpenRecordset 'クエリの結果のレコードセットを得る

End Sub

これで良いと思いますが。

QページソースからのURL抽出

VBでページソースにあるURLを全て抽出したいと考えています。
どのようにすれば良いか教えてください。
サンプルコードがあると助かります。
具体的には、以下の通り。
(1)ウェブページのソースを読み込む
(2)読み込んだソースを1行ずつ探索し<a href="****">の****の部分を全て読み込んでいく
(3)ExcelのURL欄に順に入力していく
(4)URL一覧の出来上がり
よろしくお願いします。

Aベストアンサー

こんにちは。

VB or VB(A) ? 開発環境が不明ですよ。

質問の内容ならたいしてソースは変わらないですけど、ちゃんと
明記した方が良いですよ。Excel に出力するなら VBA でって前提
で回答します。

> (1)ウェブページのソースを読み込む

とありますが、リンク抽出が目的であるならソースを読み込んで
テキスト解析するより、DOM を利用した方が簡単です。

DOM を取得する方法はいくつかありますけど、一番簡単な IE を
使った例。

Sub sample()

  Dim ie  As Object ' InternetExplorer
  Dim dom  As Object ' HTMLDocument
  Dim anc  As Object ' HTMLAnchorElement
  Dim sAddr As String
  
  Const IE_READYSTATE_COMPLETE As Long = 4&
  
  Set ie = CreateObject("InternetExplorer.Application")
  ie.Visible = True
  
  ie.navigate "ここに目的のURL"
  While ie.Busy Or ie.readyState <> IE_READYSTATE_COMPLETE
    DoEvents
  Wend
  
  Set dom = ie.document
  For Each anc In dom.links ' // or dom.getElementsByTagName("a")
    sAddr = anc.href
    ' // javascript:void(0) 等の除去
    If InStr(LCase$(sAddr), "javascript") = 0 Then
      ' // 出力(仮にイミディエイトウインドウ)
      Debug.Print sAddr
    End If
  Next
  
  Set dom = Nothing
  Set ie = Nothing

End Sub

要は、For Each ループでアンカー要素を回せばよいわけで、DOM の取得が
できるのであれば、その方法は何でもよいです。

丸投げというわけではないのでしょうが、結果としてそのようになって
しまうのは本意ではありませんので、端折った回答にしておきます。
Excel のセルへ書き出す方法は、ご自分で考えてください。

最後に、IE 操作と DOM オブジェクトについて参考となる定番ページを
紹介しておきます。

[三流君VBAでIE操作]
http://www.ken3.org/cgi-bin/group/vba_ie.asp

こんにちは。

VB or VB(A) ? 開発環境が不明ですよ。

質問の内容ならたいしてソースは変わらないですけど、ちゃんと
明記した方が良いですよ。Excel に出力するなら VBA でって前提
で回答します。

> (1)ウェブページのソースを読み込む

とありますが、リンク抽出が目的であるならソースを読み込んで
テキスト解析するより、DOM を利用した方が簡単です。

DOM を取得する方法はいくつかありますけど、一番簡単な IE を
使った例。

Sub sample()

  Dim ie  As Object ' InternetExpl...続きを読む

QIEの操作で新ページのソース取得方法は?

VBによりIEでページを表示させ、そのページから新しいページに移動させたとき、その新ページのHTMLのDocument取得方法をご教示頂きたくお願いします。

Aベストアンサー

すみません。

HTMLタグ付きなら
WebBrowser1.Document.body.innerHTML
だったと思います。


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング

おすすめ情報