アクセス2003です。

test1.mdb
test2.mdb
があります。

そして
test1.mdb→PWなし
test2.mdb→ツール→セキュリティからパスワードをかけました。

test1.mdbを起動して一部のテーブルをtest2.mdbからリンクテーブルとして繋いでいます。
(test2.mdbのファイルは開いていない)

test2.mdbからリンクテーブルしているテーブル1を開こうとすると
「パスワードが正しくありません」(3031)となり開くことが出来ません。

作業をする上で
test2.mdbのファイルは開きたくないのです。
回避方法、もしくは
VBAなどで他のファイルのパスワードを開く方法があれば教えてください。

よろしくお願い致します。

このQ&Aに関連する最新のQ&A

A 回答 (1件)

パスワードを設定してからリンクすれば良いだけのような気がしますが。



参考になるものがあるかもしれません。
http://www.accessclub.jp/search1/namazu.cgi?quer …
    • good
    • 0
この回答へのお礼

ありがとうございました。

お礼日時:2009/05/29 20:09

このQ&Aに関連する人気のQ&A

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

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

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

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

QACCESS テーブル作成クエリ

ACCESS2000で、別のデータベースAのテーブルを定期的に最新のものにするために、データベースBにテーブル作成クエリを作成します。Aを開くときにはパスワードが設定されているので、テーブル作成クエリでそのパスワードの入力を求められるため、正しく入力して実行するのですが、パスワードが正しくありませんとエラーになってしまいます。
Aのパスワードを解除して実行すればテーブルが作成できますが、パスワードを解除しないで作成する方法はないでしょうか。

Aベストアンサー

> 正しく入力して実行するのですが、パスワードが正しくありませんとエラーになって
> しまいます。

こちらの環境(WinXP・Access2003)にて、同じエラーの発生を確認しました。
ただ、そのクエリをSQLビューにしてみたところ、入力したパスワードがそのまま
表示されてしまっていましたので、この方法でのテーブル更新はお勧めしません。
(デザインビューを表示した状態で、メニューから「表示(V)→SQL ビュー(Q)」を
 選択すると、SQLビューを確認できます)

ですので、代替策として、更新したいテーブルに対してリンクテーブルを作成し、
このテーブルに対して「削除クエリ」と「追加クエリ」を実行する方法を提案します。

【リンクテーブルの作成方法】
1)データベースウィンドウ(テーブル等の一覧が表示されている画面)の何もない
 ところを右クリックし、「テーブルのリンク(L)」を選択
2)『リンク』ダイアログが開くので、対象テーブルがあるデータベースを指定
3)『データベース パスワードの入力』ダイアログが開くので、パスワードを入力
4)『テーブルのリンク』ダイアログが開くので、対象テーブルを選択(→複数選択可)
 して、『OK』ボタンをクリック

【削除クエリの作成方法】
1)新規クエリをデザインビューで開く
2)『テーブルの表示』ダイアログで、上記で作成したリンクテーブルを選択し、
 『追加』ボタンをクリック(またはテーブル名のダブルクリックでも可)
3)上記ダイアログを『閉じる(C)』で閉じる
4)メニューで「クエリ(Q)→削除(D)」を選択して削除クエリに変更
5)追加したリンクテーブルから、「*」をドラッグ&ドロップ等でクエリの下半分の
 領域に追加
 (→『レコードの削除』欄に「From」と表示されます)
 ※削除対象を限定する場合は、対象フィールドを同様にして追加し、条件を指定。
  (→『レコードの削除』欄に「Where」と表示されます)
6)名前をつけて保存


・・・以上です。
追加クエリは、テーブル作成クエリと同様の方法で作成できますので省略します。

> 正しく入力して実行するのですが、パスワードが正しくありませんとエラーになって
> しまいます。

こちらの環境(WinXP・Access2003)にて、同じエラーの発生を確認しました。
ただ、そのクエリをSQLビューにしてみたところ、入力したパスワードがそのまま
表示されてしまっていましたので、この方法でのテーブル更新はお勧めしません。
(デザインビューを表示した状態で、メニューから「表示(V)→SQL ビュー(Q)」を
 選択すると、SQLビューを確認できます)

ですので、代替策として、更新したいテーブ...続きを読む

QMSアクセスのインポート手法(パスワード設定されたエクセルブックをインポート)

アクセスで、パスワード設定されたエクセルブックからデータを自動でインポートしたいと思って、
①と②の方法を考えました。 他にこれ以上、私の浅知恵では思いつきません。
よりよいアイデアがあれば、ご教示頂けないでしょうか?

考えた方法①
:アクセス上で、ボタンアクションで、自動的にエクセルブックのパスワードを解除して、データをインポートできるマクロの構築。

①については、難しくて、実現できませんでした。


考えた方法②
:アクセス上で、エクセルアプリケーションを軌道させる。

手動で、該当のパスワードを設定されたエクセルブックを開く。

パスワードを手入力して、開き、解除をした上で、ファイル名を変更してコピー保存。

エクセルを閉じる。

アクセスに戻って、パスワード設定のないエクセルを呼び出すメニューコマンドの実行をする。
(DoCmd.RunCommand acCmdImportAttachExcel)

コピーブックを呼び出して、インポート。

以上が、恥ずかしながらのアイデアでした。。。

もしも、①が実現できるのだとすれば、その方法を、
また、①や②の他に簡潔な道筋があれば、是非、お知恵をおわけください。
よろしくお願いいたします。

アクセスで、パスワード設定されたエクセルブックからデータを自動でインポートしたいと思って、
①と②の方法を考えました。 他にこれ以上、私の浅知恵では思いつきません。
よりよいアイデアがあれば、ご教示頂けないでしょうか?

考えた方法①
:アクセス上で、ボタンアクションで、自動的にエクセルブックのパスワードを解除して、データをインポートできるマクロの構築。

①については、難しくて、実現できませんでした。


考えた方法②
:アクセス上で、エクセルアプリケーションを軌道させる。
...続きを読む

Aベストアンサー

サンプル。
ご自由にアレンジを。

Sub Sample()
  Dim strDocName As String
  Dim strNewName
  Dim oApp As Object

  strDocName = "C:\Sample\ブック.xlsx"
  strNewName = "C:\Sample\ブック_パスなし.xlsx"

  Set oApp = CreateObject("Excel.Application")

  'Excelファイルオープン
  With oApp
'     .Visible = True
    .Workbooks.Open FileName:=strDocName, _
    Password:="abcd", WriteResPassword:="abcd"

    '名前を付けて保存
    .ActiveWorkbook.SaveAs strNewName, Password:="", WriteResPassword:=""
    .ActiveWorkbook.Close False
    .Quit
  End With
  Set oApp = Nothing

  'Excelインポート
  DoCmd.TransferSpreadsheet acImport, , "テーブル1", strNewName, True, "シート1$"
End Sub


セルの値を読みながらテーブルに書き込んでいくという方法もあり?

サンプル。
ご自由にアレンジを。

Sub Sample()
  Dim strDocName As String
  Dim strNewName
  Dim oApp As Object

  strDocName = "C:\Sample\ブック.xlsx"
  strNewName = "C:\Sample\ブック_パスなし.xlsx"

  Set oApp = CreateObject("Excel.Application")

  'Excelファイルオープン
  With oApp
'     .Visible = True
    .Workbooks.Open FileName:=strDocName, _
    Password:="abcd", WriteResPassword:="abcd"

    '名前を付けて保存
  ...続きを読む

QAccessのRefresh・Requery・Repaintの違い

Requeryはもう一度ソースレコード(テーブル)を読み込むようです。このとき、テーブルの先頭レコードに移動してしまいます。
Refreshは最新のレコード(テーブル)を再表示するような気がします。レコードの移動は起こらない気がします。
Repaintは、VBAでキャプションなどを変更したとき使っています。
でも、よくわかっていません。
どんなときにどんなメソッドを使えばいいのでしょうか?
詳しい方、よろしくお願いいたします。

Aベストアンサー

たびたびすみません。
調べてたらこんなのがでてきました。
http://www.nurs.or.jp/~ppoy/access/access/acF007.html

参考URL:http://www.nurs.or.jp/~ppoy/access/access/acF007.html

QExcelからパスワード付きAccess

現在 パスワードが設定されたAccessファイル(accdb形式)のデータをExcelに取り込むプログラムを作成しています.
接続時のプログラムは以下のように記述しました.

Dim cn As New ADODB.Connection
Dim cnStr As String, dbDir As String, Pswd As String

dbDir = "c:\test\test.accdb"
Pswd = "pass"
cnStr = "Provider=Microsoft.ACE.OLEDB.12.0;" & _
"Data Source=" & dbDir & ";" & _
"Jet OLEDB:Database Password=" & Pswd & ";"
cn.Open cnStr

上記でexcel2003及び2007からaccdbに接続したところ問題なくデータ取得できました.
excel2010で上記プログラムを実行すると
「パスワードが正しくありません」
と表示され,データが取得できません.

このような場合,どうすれば解決出来るでしょうか?

現在 パスワードが設定されたAccessファイル(accdb形式)のデータをExcelに取り込むプログラムを作成しています.
接続時のプログラムは以下のように記述しました.

Dim cn As New ADODB.Connection
Dim cnStr As String, dbDir As String, Pswd As String

dbDir = "c:\test\test.accdb"
Pswd = "pass"
cnStr = "Provider=Microsoft.ACE.OLEDB.12.0;" & _
"Data Source=" & dbDir & ";" & _
"Jet OLEDB:Database Password=" & Pswd & ";"
cn.Open cnStr

上記でexcel200...続きを読む

Aベストアンサー

Access Excel ともに2010で試しました。
パスワード・・のエラー発生。
ググリまくると
http://www.access-programmers.co.uk/forums/showthread.php?t=220521
Franz Haidacher さんによれば
Access2010 から採用された既定の暗号化方法(高度なセキュリティ)は
ADO OLEDB では接続できないようです。

Accessのオプションのクライアントの設定から
以前の暗号化方法を使用するに変更したうえでパスワードを設定するしか
現在のところ方法がなさそうです。
(-"-)
DAOなら・・・と試しましたが同じく orz

QAccessのマクロでモジュールを実行させたい。

Access2002を勉強中の初心者です。

AccessでDB1という名前のデータベースを作成し、その中で、モジュール1というモジュールを作成しました。これを実行するマクロを作成したく、次のようにマクロを作成しました。
マクロのデザイン画面でアクションに「プロージャの実行」を選択、プロージャ名入力覧の右側の...のボタンを押して式ビルダ画面を表示、ここの「関数」フォルダを開いてDB1を選択、表示されたモジュール1を貼り付けてOK。
しかし、このマクロを実行すると、次のエラーとなります。「DB1 指定されたDB1が見つけることができない関数名が含まれています」

根本的に方法が間違っているのでしょうか?
アドバイスをよろしくお願いします。

Aベストアンサー

#1です。

ちょっと時間ができたので、Accessのヘルプで、
 "RunCode/プロシージャの実行" アクション
についてのトピックを見てみました。

結論から言うと、基本的な考え方が間違っているみたいです^^;。

「プロシージャの実行」アクションでは、「Function」プロシージャを指定するようです。
Subプロシージャではエラーになります。


つまりご質問の件では、
「Subプロシージャを呼び出すFnctionプロシージャ」をまず書かなけれえばならない。
そして、マクロのアクションでは、あらためてこのFunctionプロシージャを指定しなければいけません。

QACCESSに同時アクセス(編集)をしたい

教えてください。
ACCESSのDBに複数のユーザが同時にアクセスして、
データを追加・編集したいのですが、
やはり、不可能でしょうか?

Aベストアンサー

マイクロソフトのアクセスに同時に複数のユーザが同時にアクセスして
データベースを操作することは可能です。いくつかの方法がありますが、
昔私が簡便に行なっていた方法は「テーブルのリンク」です。

あるコンピュータにアクセスでdb1という名前のデータベースを作って
ここにデータを格納しておきます。

他方で別のコンピュータに、アクセスでdb2という名前のデータベースを作ります。

このdb2というデータベースのメニューで

「ファイル」->「外部データの取り込み」->「テーブルのリンク」

というのがありますから、最初に作ったdb1をたどり、リンクしたいテーブルを
選択します。

こうすることにより、db2にdb1のテーブルがリンクされ(リンクテーブルと
呼ばれます。アイコンが通常のテーブルと違います。)、db1に格納された
データをdb2で編集することができます。

db2で、db1からのリンクテーブルを元にクエリーを作成することもできます。
リンクテーブルに対してできないことはテーブル構造の変更くらいで
他のことはだいたいできると思っていいかと思います。

このような形をとれば、ローカルエリアネットワーク内の複数のコンピュータ
から同時に同じアクセスデータベースにアクセスすることは可能かと思います。

このやり方にはおそらく問題もあるだろうと思うのですが、昔私がやって
いた頃は、特段支障もなく業務を行なうことができました。問題は、これを
読んだ他の誰かが指摘してくださるかと思います。

同じレコードに複数ユーザが同じタイミングでアクセスするとややこしい
ことになります。これを回避するためには、db2にワークテーブルを備えておき、
リンクテーブルからレコードを一度db2に格納し、編集を終了したのちに
リンクテーブルのレコードを削除し、ワークテーブルで編集したレコードを
リンクテーブルに追加する、などのルーティンをマクロやVBAで構築するのが
よいかと思います。私はそのようにしていました。

他に、ADOを使う方法などもあります。方法はいくつかありますから、
少し研究してみるといいですよ。(^-^)

マイクロソフトのアクセスに同時に複数のユーザが同時にアクセスして
データベースを操作することは可能です。いくつかの方法がありますが、
昔私が簡便に行なっていた方法は「テーブルのリンク」です。

あるコンピュータにアクセスでdb1という名前のデータベースを作って
ここにデータを格納しておきます。

他方で別のコンピュータに、アクセスでdb2という名前のデータベースを作ります。

このdb2というデータベースのメニューで

「ファイル」->「外部データの取り込み」->「テーブルのリンク」
...続きを読む

QEXCELマクロで、開いてはいるがアクティブでないファイルをアクティブにする方法?

いつもこちらのサイトではお世話になっております。EXCELのマクロについて教えてください。

ファイルを2つ開いているとき、アクティブになっていないほうのファイル名を取得し、そのファイルをアクティブにしたいと考えています。

条件1)
アクティブにしたいファイル名は必ず「グラフ」で始まり、「.xls」で終わります。

条件2)
ファイルは2つともEXCELファイルです。



すみませんが、どうしてもやりかたが思いつかず、教えてください。

Aベストアンサー

#1です。

なるほど、こちらの認識不足でした。

If wb.Name <> ActiveWorkbook.Name Then

     ↓

If wb.Name <> ActiveWorkbook.Name And Windows(wb.Name).Visible Then

で、非表示ブックを対象外にします。

Qアクセス: フォーム上で計算した数字をテーブルに保存したい。

 こんばんは。また質問させてもらいます・・。
これがアクセスに関して、最後の質問になるようにしたいです!!

 さて、フォームに入力したものは自動的にテーブルに保存されます。
しかし、フォーム上で計算したものは、テーブルに反映されていませんでした。
過去の質問にフォーム上計算したものは、テーブルに反映されないということがわかりました。
では、一体どうすればいいのでしょうか。

 フォームのコントロールソースには
=([QTY]*[COST]) 数量*値段を入れています。

どうすれば、テーブルに表示できるでしょうか。
ご教授お願いいたします。

過去の質問は、こちらを参考しました。
http://oshiete1.goo.ne.jp/kotaeru.php3?q=1002073

Aベストアンサー

クエリーを覚えると便利です。
テーブル=オペレーターが入力したりする項目
クエリー=テーブルのデータプラスそれから計算出来るさまざまな項目

例えばQTYとCOSTはテーブルに
合計は 合計:[QTY]*[COST}
というようにクエリーに追加すれば、テーブルに
合計という項目を持つ必要がありません。
テーブルの「合計」を削除しても差支えありません。

また入力日という項目をテーブルに持ち
後の整理の目的でクエリーには
年:Year([入力日])
月:Month([入力日])
などとする事も可能です。

これで何年何月のデータだけを抽出したい場合でも
クエリーの抽出条件に 2004 とか 8(月)とかを
入力するだけでOKです。

合計、平均、最大、最小なども....

データベースはクエリーにあるレコードをいちいち保存するのではなく、計算式だけを覚えていて、開くたびに
計算して表示してくれるだけなのです。

Qアクセスで西暦データを和暦表示させる方法

テーブルのデータは西暦で管理していますが、レポートでは和暦で出力する方法は無いでしょうか。生年月日の表示などはどうしても和暦の方が一般的なので、変則的な方法を探していますので、教えて下さい。

Aベストアンサー

Accessでの和暦の表示
ge   H1
gge   平1
ggee  平01

gggee\年     平成01年
ggge\年m\月d\日   平成1年1月1日
gggee\年mm\月dd\日 平成01年01月01日

ge\/m\/d H1/1/1
gee\/mm\/dd H01/01/01

レポートの日付のフィールドのプロパティの書式で上記より選んで設定してください。

QAccessのテーブル内の文字の置き換え

Accessのテーブルへ他のデータベースから品名マスターをインポートしました。その品名の中に「*」の文字が使ってあり、その「*」を「×」の文字に置き換えたいのですがなにか良い方法があれば教えて下さい。
因みに品名マスターは以下のようになっています。

コード  品名           単価   単位
00010  Becu1.2*2000     9970.0   Kg
00020  Becu1.5*2000     7980.0   Kg
      ↓

コード  品名           単価   単位
00010  Becu1.2×2000     9970.0   Kg
00020  Becu1.5×2000     7980.0   Kg

上記の用にしたいのですが。
よろしくお願いします。

Aベストアンサー

テーブルを開いて、列名(品名のところ)をクリックして選択。
編集 → 置換にて
検索文字列に [*]
置換文字列に ×

探す場所のプルダウンで「品名」がでて来ますので選択
検索条件フィールドの一部分
でどうでしょう?


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

人気Q&Aランキング

おすすめ情報