• 締切済み

VisualBasic2008とMS-Access

はじめまして。ご存じの方いらしたらご教授下さい。 VisualBasic2008 ExpressEditionからAccess2000(mdb)を起動する方法が分かりません。 Excelの場合は、 Dim obj as object obj = CreateObject("Excel.Application") Shell(obj.path & "\excel.exe " & "hoge.xls", 1) で起動できましたが、Accessを起動しようと同様に Dim obj as object obj = CreateObject("Access.Application.9") Shell(obj.path & "\msaccess.exe " & "hoge.mdb", 1) としたところ「公開メンバ 'path' は型 'Application' に見つかりませんでした。」 とShell命令で中断します。 宜しくお願い致します。

みんなの回答

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.3

Googleででも「vb2008 access 接続」で照会すると、出てくる記事で判ります。 http://blog.livedoor.jp/akf0/archives/51192655.html に載っているコードで、VB2010Expressでやってみました。(2008でも同じと思う) コンソールアプリケーションでおこなう。 Dim FilePath As String = "C:\Documents and Settings\XXXX\My Documents\社員2.mdb" のようにファイルを指定する。 Debug.WriteLine(reader(3))の0や3はフィールドの指定番号であること。

  • samtomsan
  • ベストアンサー率55% (1060/1897)
回答No.2

下記にサンプルプログラムがあります。参考になると思います。 http://support.microsoft.com/kb/317113/ja

  • piroin654
  • ベストアンサー率75% (692/917)
回答No.1

Dim obj as object obj = CreateObject("Access.Application") obj.OpenCurrentDatabase(filepath:="C:\Program Files\hoge.mdb") obj.Visible = True では?

関連するQ&A

  • Access&VB

    2つほど質問があるのですが、 1.VBからDAOでパスワードがかかっているACCESSに接続する場合に引数はどのように設定したらよいのでしょうか? 2.ACCESSでクエリーを作成し、そのクエリーの結果をエクセルにエクスポートするという処理をやります。 このときクエリーはパラメータを要求します。どこかのタイミングでパラメータをわたせないでしょうか? 具体的にはこんな感じです。 Dim objDb As Object Dim appAccess As Object Set appAccess = CreateObject("Access.Application") appAccess.OpenCurrentDatabase "パス名\Memo.mdb" appAccess.DoCmd.TransferSpreadsheet 1, 8,"クエリー名","パス名.xls", False,"" もしくは、 appAccess.DoCmd.RunMacro "マクロ名" (マクロの中身は「TransferSpreadsheet」) 分りにくい説明ですが、よろしくお願いします。

  • 相対パスで別MDBファイルを開きたい

    Accessでフォームにボタンを作り、別のmdbファイルのフォームを開く処理を書いてあります。 コードは次のような感じです。 Dim acMDB As Object Dim isOK isOK = Shell("MSACCESS.exe \\コンピュータ名\フォルダ名\ファイル名.mdb",vbMaximizedFocus) set acMDB = GetObject("\\コンピュータ名\フォルダ名\ファイル名.mdb") この度ファイルを他の人へ配布することになったのですが、パス名を相対パスで書くことは出来ないのでしょうか? 他の人のコンピュータ名も分からない為、 出来たら元ファイルと同じフォルダにある…というような指定が出来れば助かるのですが…。

  • Access-Runtimeについて

    Access2000でデータベースパスワード付きのmdb(DB_A.mdb)を起動するためのDB(DB_B.mde)を作成しました。 DB_B.mdeからDB_A.mdbを起動させるために"CreateObject"を使っていますが、RuntimeではCreateObjectを受け付けてくれません。 CreateObject("Access.Application")に相当するものをご存知の方、ご教授いただけませんか? よろしくお願い致しますm(_ _)m

  • エクセルから現在起動しているアクセスファイルをアクティブにしたい

    現在エクセルとアクセスを開いています。 エクセルマクロで現在開いているアクセスをアクティブにしたいのですがうまくいきません。 Sub アクセスをアクティブにする() Dim app As Object Set app = CreateObject("Access.Application") app.Application.Visible = True app.Visible = True End Sub これを実行すると新たに空のアクセスアプリケーションが開きます。 (app.Application.Visible = True)を抜いても同じです。 現在起動中のアクセスファイル(○○○.mdb)をエクセルからアクティブにするにはどうすればいいのでしょうか? ご教授よろしくお願いします。

  • ゾンビエクセル・・・(ExcelVBA)

    ExcelのVBAからAccessを起動し、エクセルファイルのインポートを行っています。 この処理を行うと、その後エクセルを閉じてもプロセスにエクセルが残ってしまいます。 なぜこうなってしまうのか判りません。よろしかったら教えてください(><) 一応コードを書いてみます。TransferSpreadsheetのコードを実行しない場合はゾンビエクセルは残らないので、それが原因だとは思うのですが他の方法がわかりません。 よろしくお願いいたします。 Dim appAccess As Object Dim acImport, fname As String, ffname As String acImport = "acImport" fname = ThisWorkbook.Path & "\取込.mdb" ffname = ThisWorkbook.FullName Set appAccess = CreateObject("Access.Application") appAccess.OpenCurrentDatabase fname appAccess.DoCmd.TransferSpreadsheet , 8, _ "torikomi", ffname, True, "torikomi" Set appAccess = Nothing

  • vb→access コーディングエラーについて

    <環境>access2007 vbコーディングした以下のコードをaccessに移行しているのですが、宣言で"Excel.~"となっているところでコンパイルエラーとなります。 (エラー:ユーザー定義型は定義されていません。) なので、全てObject型に変えたのですが、 (1)objBook.Names.Countで件数が取れないし、 (2)For Each objName In objBook.Namesで名前も取れません。 accessで動くようにどう直せばいいのでしょうか? よろしくお願いします。 <vbコード> Dim XLAPP As Excel.Application →Objectに変更 Dim objBook As Excel.Workbook →Objectに変更 Dim objName As Excel.Name →Objectに変更 Dim objTable As Excel.Range →Objectに変更 Dim objRange As Excel.Range →Objectに変更 Dim objColumn As Excel.Range →Objectに変更 Dim objRow As Excel.Range →Objectに変更 Dim i As Integer Dim lngCountSheet As Long Set XLAPP = CreateObject("Excel.Application") Set objBook = XLAPP.Workbooks.Open(FileName) objBook.Application.DisplayAlerts = False lngCountSheet = objBook.Names.Count (1)←ここ For Each objName In objBook.Names (2)←ここ Set objTable = objName.RefersToRange With objTable For i = 1 To .Columns.Count Set objColumn = .Columns(i) objColumn.HorizontalAlignment = XlHAlign.xlHAlignLeft Set objColumn = Nothing Next i '先頭行の書式設定をします Set objRow = .Rows(1) objRow.Interior.Color = RGB(192, 192, 192) ' .Range("A2").Activate '' ActiveWindow.FreezePanes = True ' XLAPP.ActiveWindow.FreezePanes = True End With Next XLAPP.Quit

  • 既に開いているIE(タイトル名はgoo)を取得したい

    環境はACCESS2000、XPです。 コードの中で 既に開いているIE(タイトル名はgoo)を インスタントしようと思い 以下のようしてみました。 Dim obj As Object Set obj = CreateObject("InternetExplorer.Application", "goo") 「リモートサーバーがないか、使用できる状態ではありません」 というエラーが出てしまいました。 どのようにすれば取得できますか?

  • LocationNameを取得するとアウトルックが

    エクセルvba2010です。よろしくお願いします。 Sub Sample() Dim ie As Object For Each ie In CreateObject("Shell.Application").Windows() Debug.Print ie.LocationName Next End Sub このコードで、現在開いているURL名を取得すると、 アウトルックを立ち上げてると outlook:%26%2321463・・・ と言うのが取得されるのですが、これは何のパスでしょうか? メールは立ち上げていません。

  • OS:Windows7

    OS:Windows7 ACCESS:2003 ランタイム SQLServer2000 mdbのフォームからadpのフォームを開くために以下のコーディングをしています。 Dim strAppPath As String Dim strDBPath As String strAppPath = "C:\Program Files\Microsoft Office\OFFICE11\MSACCESS.EXE" strDBPath = """C:\Program Files\SSSS\sugimura05ADP.ADP""" Shell strAppPath & " " & strDBPath, vbMaximizedFocus Dim obj As Access.Application Set obj = GetObject("C:\Program Files\SSSS\sugimura05ADP.ADP") obj.DoCmd.OpenForm "売上伝票入力" OSがWindowsXPの場合、問題なく動作するのですが、 Windows7の場合、以下のようなメッセージが出て、動作しません。 「ActiveXコンポーネントはオブジェクトを作成できません。」 参照設定で Microsoft ActiveX Data Object 2.8 Libraryを選択しています。 どなたかご教授をお願いいたします

  • SaveAsでバージョンを指定して保存する方法

    SaveAsでバージョンを指定して保存する方法が分かりません。 WINDOWS7 ACCESS2010のVBAから、EXCEL2000用のファイルとして保存するために、以下のようにしました ------------ Dim oApp As Object Dim oWkb As Object Dim oWks As Object Set oApp = CreateObject("Excel.Application") oApp.Visible = True oApp.DisplayAlerts = Flase '確認メッセージの非表示 Set oWkb = oApp.Workbooks.Open(filename:=CurrentProject.Path & "\" & MyFile, PassWord:="") ・ ・ ・ ↓ここで「オブジェクトがありません」と言うエラー oWkb.SaveAs CurrentProject.Path & "\" & MyFile, FileFormat:=xlExcel9795 どのようにしたら宜しいですか?

専門家に質問してみよう