Access初心者です。教えてください。

現在Microsoft Access2013にてDBを構築しました。(Tableは6つで全てリレーションで結んでいる。)
inputテーブルを作成し、そのテーブルに手動で引数をセットしクエリーウィザードにて
呼び出したいフィールドを選ぶと想定したクエリーが出るように作りました。

しかし、周りの人に展開する際に、inputテーブルを開いて、そこに値をセットするのではなく、
フォームのようなものに引数を選択して、ボタンを押すとクエリーが出てくるようにして欲しいと要望が出ました。

1.フォームを作成し、inputテーブルに引数をセット
2.セットされた引数をもとにクエリーを作成。
この2段階で作成なのかなと考えています。

作り方のガイドやもっといい方法などあったら教えてください。

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

A 回答 (1件)

    • good
    • 0

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

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

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

QJavascriptからJSPファイル(~.jsp)を起動する時、引数

JavascriptからJSPファイル(~.jsp)を起動する時、引数を渡したい。また、jspファイル終了後、jspからのリターン値(もくしは引数)をjavascriptで参照したい。
 ※要するに javasript → jsp 起動
 起動jspファイル終了時、javascript側でjspファイルの処理結果を判定したい。

どうすれば良いですか?

Aベストアンサー

要するに、JAVSCRIPTを使って、サーバーサイドのJSPとAJAX(非同期通信)
するという意味ですかねえ?
 それなら、PHPやCGIの場合とあまりちがわないと思うんですが...
あまりくわしくないですが、
HTML(JAVASCRIPT)側からPOST、GET要求したデーターは、
JSP側は
 「request.getParameter(java.lang.String name)」
で受け取れます。
逆にheader指定は、
<%@ page contentType="text/html; charset=utf-8" %>
で、出力は
<% out.print(hoge); %>とか<%= hoge %>
みたいに、ASPやPHPとかまあ、みんな同じようなもんですね。
ヒアドキュメントもあるのかな。

QAccessのDlookupの引数設定について

テーブルA

ID | val
---------  
01 | 001
02 | 002
03 | 003
04 | 004
05 | 005


テーブルB

ID | val
---------  
01 | 001
02 | 002
03 | 003
05 | 005

テーブルAとBのレコード数はいずれも約30万件あります。
本来AとBは同数のレコードをもつはずなのですが、数件の差異があることがわかりました。
それが何かを調べたいのですが、その方法についてご教示ください。

エクセルであれば、Vlookupを使い

テーブルA
ID | val | Vlookup式
--------------------  
01 | 001 | 001
02 | 002 | 002
03 | 003 | 003
04 | 004 | Null
05 | 005 | 005

という方法で発見できるのですが、なにせ件数が多いため、慣れないAccessを使ってやろうと考えました次第です。

で調べると、Vlookupに似たDlookup関数というのがあるではありませんか。

そこで、「クエリデザインの作成」→「テーブルの表示」ウィンドウの「テーブル」タブから「テーブルA」を選択→項目「ID」「val」をデザイングリッドに展開しました。
そして、新規フィールドを選択→ビルダーをクリック→ここでDlookupを選択しました。

しかし、以下の式の引数をどのように設定すればよいのかではたと立ち止まってしまいました。

 DLookUp(«expression», «domain», «criteria»)

どう設定すれば、エクセルにおけるVlookupのようなことが実現できるでしょうか。
あるいは、もっと適当な方法がありましたらご教示いただければ幸いです。

ちなみに、環境はAccess2010を使っています。
よろしくお願いします。

テーブルA

ID | val
---------  
01 | 001
02 | 002
03 | 003
04 | 004
05 | 005


テーブルB

ID | val
---------  
01 | 001
02 | 002
03 | 003
05 | 005

テーブルAとBのレコード数はいずれも約30万件あります。
本来AとBは同数のレコードをもつはずなのですが、数件の差異があることがわかりました。
それが何かを調べたいのですが、その方法についてご教示ください。

エクセルであれば、Vlookupを使い

テーブルA
ID | val | Vlookup式
--------------------  
01 | 001 | 001
02 | 002 | 002
03 |...続きを読む

Aベストアンサー

アクセスはエクセルじゃないですから、似たような関数を持ってきて貼り付けてもだめです。
しかし、DLookUpをあなたがやりたいように使うことはできます。
テーブルAをもとにしたクエリーをつくることにして、

DLookUp("val", "テーブルB", "ID=" & [ID])

テーブルBの、IDが同じレコードの、valを返せ、という意味になります。
IDが文字列変数なら、''で挟む必要があります。

しかし、#1の方もご指摘の通り、せっかくデーターベースソフトを使っているのに、そんな風にDLookUp関数を使う人はいません。
30万件もDLookUp関数走らせたら、動かないかもよ。

手元にアクセスがないから、画面をうpできないのですが、散文的に書いてみます。

まずクエリビルダでテーブルAとテーブルBを開きます(あなたがテーブルAだけを選択したところです)。
テーブルAのIDをドラッグして、テーブルBのIDでドロップします。
すると、IDとIDが細い線でつながられるはずです。
テーブルを二つ開いたところで、すでに細い線でID同士がつながれていたら、この作業は不要。

この線を選択して右クリックするとメニューが現れ、リンクの編集、というような意味の項目があるはずです。これをクリック。
そこで、テーブルAのすべてのレコードと、関連するテーブルBのレコードを表示する、というよう意味の項目を選びます(ラジオボタン)。
で、閉じる。
ID同士をつなぐ線が矢印になったはずです(Aに向かう矢印・・・・・だったはず)。

デザイングリッドには、テーブルAからIDとvalをドラッグ・ドロップ、テーブルBからはvalをドラッグ・ドロップします。
テーブルB.valの抽出条件は IsNull (Is Nullだったかな?)とします。

それでクエリの実行。

ID | A.val | B.val
--------------------  
04 | 004 | Null

という感じで結果が表示されます。

これが、#1の方のおっしゃる不一致クエリです。
ウィザードでも作ることができることになっていますが、このウィザードのメッセージが私には全く意味不明な日本語なので、私はウィザード使いません。
上のように自分で作ったって、かかる時間は同じですから。

アクセスはエクセルじゃないですから、似たような関数を持ってきて貼り付けてもだめです。
しかし、DLookUpをあなたがやりたいように使うことはできます。
テーブルAをもとにしたクエリーをつくることにして、

DLookUp("val", "テーブルB", "ID=" & [ID])

テーブルBの、IDが同じレコードの、valを返せ、という意味になります。
IDが文字列変数なら、''で挟む必要があります。

しかし、#1の方もご指摘の通り、せっかくデーターベースソフトを使っているのに、そんな風にDLookUp関数を使う人はいません。
30万件...続きを読む

QhtmlまたはJavascriptからファイルを引数つきで起動する。

htmlまたはJavascriptからファイルを引数つきで起動する。

マクロ(macro.xls)に引数(csvファイル名)を渡して起動させたいため、
vbsを作成してマクロを引数つきで実行するようにしました。

コマンドからは
>test.vbs /FILE:macro.xls /P:aaa.csv

でマクロを実行することができたのですが、

HTMLにリンクを張り、リンクをクリックすることで
vbsを引数つきで実行するにはどうすればよいでしょうか?
(Javascriptを経由しても構いません)

Aベストアンサー

当然、Windows IE限定のお話ですよね。

どおしてもHTMLでやりたいなら、test.vbsなんて余計な物を作らずに、
直接javascript(MsのJscript)のActiveXオブジェクトを使って、
直接ExcelApplicationオブジェクトを作って、Excelオブジェクト
のクラスメソッドを使って、ファイルの読み込み、マクロの実行を
すればよいんじゃないかと、Excelオブジェクトをシームレスで動かせば、
Excelを見せなくして、マクロ実行だけこっそりさせる事も出来ます。

※だから、セキュリティ制限が厳しいのです。IEで、信頼済みサイトに登録する
必要があります。


<body>
----------
<p>
<a name="button_no_kawari" onclick="Excel_open('xxx.xls');return false;">
エクセルを実行</a>
</p>
----------
<script type="text/javascript">
<!--
 function Excel_open(pgm_name){
  var pgm_path = "c:/プログラム/";
  var file_name = pgm_path + pgm_name;
  var Excel = new ActiveXObject("Excel.Application");
  Excel.Visible = true;
  Excel.Workbooks.Open(file_name,0,"true"); 
  Excel.Workbooks(pgm_name).Sheets("Menu").Activate;
 //他にもいろいろExcelを操作出来る
  Excel.Application.Run("main"); //<=マクロ"main"実行
  Excel = "";
 }
// -->
</script>
</body>

当然、Windows IE限定のお話ですよね。

どおしてもHTMLでやりたいなら、test.vbsなんて余計な物を作らずに、
直接javascript(MsのJscript)のActiveXオブジェクトを使って、
直接ExcelApplicationオブジェクトを作って、Excelオブジェクト
のクラスメソッドを使って、ファイルの読み込み、マクロの実行を
すればよいんじゃないかと、Excelオブジェクトをシームレスで動かせば、
Excelを見せなくして、マクロ実行だけこっそりさせる事も出来ます。

※だから、セキュリティ制限が厳しいのです。IEで、信頼済みサイト...続きを読む

QAccess 複数列レポートにおいてグループのタイトルをレポート幅いっ

Access 複数列レポートにおいてグループのタイトルをレポート幅いっぱいに表示したい


Access 初心者です。

1ページに複数のグループ化されたデータを表示したく、2列のレポートを作成しています。
この際に、各グループのタイトルをレポート幅いっぱいに表示したいと考えています。

グループヘッダーで実現しようとしたのですが、1列分の幅に出力されてしまいうまくいきません。
グループヘッダーのみページレイアウトを2列ではなく1列にする方法はありますでしょうか?

また、他にうまい方法があれば、ご教示いただければ幸いです。

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

Aベストアンサー

グループヘッダーでしたね。^^;

こちらで。

詳細複数列のときの、グループヘッダーについて【レポート】
http://www.accessclub.jp/bbs/0225/beginers69129.html

QJavaScriptの関数の引数省略について

JavaScriptの関数で、下記のような引数の省略はできるでしょうか?

【例】

function hoge(aaa, bbb){}

hoge(,"できるかな");←このような引数の省略はできるでしょうか?

--------------------

しらべてみると、引数が2つあった場合、後方の引数の省略はできることがわかりました。

【例】
hoge("できるかな");←この場合できます。


しかし、引数が2つあった場合、前方の引数省略の例は見つけることができませんでした。
前方の引数を省略することはできるのでしょうか?
よろしくお願いします。

Aベストアンサー

>hoge(,"できるかな");

そういう引数の省略をする言語もありますが、javascriptでは
文法上間違っているのでエラーで処理されます

どうしてもやりたいならnullでも与えてあげてください
(まぁ省略になっていないですが・・・)

hoge(null,"できるかな");

あとは姑息に無理やり配列で渡すなどすれば似たようなことは
できないことはないですが、あまりお勧めはできません。

<script>
function func(){
var a=arguments[0][0];
var b=arguments[0][1];
document.write("1st:"+a+"<br>");
document.write("2nd:"+b+"<br>");
}
func(["hoge","fuga"]);
func([,"piyo"]);
</script>

QAccess97からAccess2013に変換

Access97をAccess2013に変換して、Windows8.1で使用したいと考えています。
Windows8.1には32bit・64bitがあり、Access2013も32bit・64bitがありますが、
Access97をAccess2013の32bitに変換できたと仮定して、
Windows8.1が64bit版でも稼動するのでしょうか?

Aベストアンサー

Windows8.1 64bit
Access2013 32bit
の組み合わせがベストかと思います。

64bit版Accessの場合だと従来の32bit版Active Control の使用不可や
APIの修正が必要なのでMS社でもお勧めはしていません。
https://support.office.microsoft.com/ja-jp/article/Microsoft-Office-%E3%81%AE-32-%E3%83%93%E3%83%83%E3%83%88%E7%89%88%E3%81%A8-64-%E3%83%93%E3%83%83%E3%83%88%E7%89%88%E3%82%92%E9%81%B8%E6%8A%9E%E3%81%99%E3%82%8B-381ff66c-430b-4e2b-aa15-16084c8062da?CorrelationId=3d93043b-41f3-42c5-ad34-1f9bdb845ba3&ui=ja-JP&rs=ja-JP&ad=JP

で、ファイル形式がAccess97のmdbの場合には
Access2013では直接読めません。
Access2000以降のファイル形式(mdb や accdb)に変更する必要があります。
直接開こうとすると…
『前のバージョンのアプリケーションで作成されたデータベースを開くことはできません』
と叱られます。
多分ですが直接開けるのはAccess2003辺りまでじゃないかと思います。
Windows7 & Access2010 ではMSACCESS.exe をWindowsXPの互換モードで立ち上げれば
直接開くことが出来たのですが、8.1 & 2013 では互換モードでもダメっぽいですね。
こちらに変換方法を載せてくれています。(試していません)
http://blogs.technet.com/b/cs3_office/archive/2013/12/24/access-97-access-2013.aspx
http://mukkumuku.blogspot.jp/2013/01/access-2013-access-97-file-format.html

Windows8.1 64bit
Access2013 32bit
の組み合わせがベストかと思います。

64bit版Accessの場合だと従来の32bit版Active Control の使用不可や
APIの修正が必要なのでMS社でもお勧めはしていません。
https://support.office.microsoft.com/ja-jp/article/Microsoft-Office-%E3%81%AE-32-%E3%83%93%E3%83%83%E3%83%88%E7%89%88%E3%81%A8-64-%E3%83%93%E3%83%83%E3%83%88%E7%89%88%E3%82%92%E9%81%B8%E6%8A%9E%E3%81%99%E3%82%8B-381ff66c-430b-4e2b-aa15-16084c8062da?CorrelationId=3d93043b-41f3-42c5-ad3...続きを読む

Qjavascriptに引数を渡す方法について

お世話になります、
javascriptに下記のように引数を渡して
表示したいのですがうまくいきません。
<script language="javascript">
function dispData(msg)
{
document.write(msg);
}
</script>

$a = "hoge";
echo "<a href='#' onclick='javascript:dispData($a)'>" . $a . "</a><br>";
とすると動作してくれません。
$aをシングルコートで囲っても同じです。
$a = "/hoge/";をやると/hoge/を表示されます。
コーディングの方法を教えて頂きたいのですが。
dispData()に引数を渡して処理を行いたいもので。
よろしくお願い致します。

Aベストアンサー

document.writeする意味がわかりませんが・・・
きちんとクォーテーションをつけてやればわたりませんんか?

<script language="javascript">
function dispData(msg){
alert(msg);
}
</script>
<?
$a = "hoge";
echo "<a href='#' onclick='javascript:dispData(\"$a\")'>" . $a . "</a><br>";
?>

QOFFICE2013とMicrosoft アカウントの紐付けと再インストールについて

OFFICE2013を使用しているのですが、一度アンインストールして、別のMicrosoft アカウントで登録して別のPCに再インストールすることは可能でしょうか?

別のアカウントでの登録自体できないのでしょうか?

上記のように使用された経験のある方でその後なにか問題等はなかったでしょうか?

Microsoftサポートにでている紐付けに関する一通りの回答は読みましたので、上記のことを試された方の経験談をお聞かせ頂けると助かります。

Aベストアンサー

>別のアカウントでの登録自体できないのでしょうか?
できません。
http://www.microsoft.com/ja-jp/office/2013/fppsetup/fpp_faq.aspx
にあるFAQの"「マイアカウントページ」で既に登録している「Microsoft アカウント」を後から変更することはできますか" にあるとおりです。

ただし、インストールメディア(バックアップメディア)とプロダクトキーさえあれば他のパソコンへのインストールが可能です。
http://www.microsoft.com/ja-jp/office/2013/fppsetup/fpp_media.aspx

Qjavascript外部読み込みの際の引数

教えてください。

HTML内で以下のように ?ver=12 と引数付きでjavascriptを読み込みます。
<script type="text/javascript" src="hoge.js?ver=12"></script>


このver=12をhoge.js内で利用するにはどうやって取得したらよいでしょうか?



※画像等のキャッシュの制御のためにバージョンナンバーをつけて管理します。

Aベストアンサー

一例です。

(function(){
var sc = document.getElementsByTagName("script");
var ver = sc[sc.length-1].src.match(/\?ver=(\d+)$/);
if(ver) ver = ver[1];
alert(ver);
})();

QAccess初心者です。(Access2003)

書籍の在庫管理のフォーム作成で、、
メインフォームとサブフォームにわけました。

しかし、サブフォームで
1つの商品を入力し、2番目の商品を入力すると、
先の1つめの商品入力の履歴が、2番目と同じになってしまいます。
(数量だけは1番目の入力通り残ってくれてます)

<サブフォーム>
------------------------------
申請書番号、商品コード、版、商品名、数量
------------------------------
1行目 0001 060 3-5 ACCESS入門書 5
2行目 0001 061 5-6 ACCESS応用書 3
-------------------------------
となるはずが、2行目を入力すると
------------------------------
1行目 0001 061 5-6 ACCESS応用書 5
2行目 0001 061 5-6 ACCESS応用書 3
-------------------------------
となってしまいます。

商品名の箇所は、
商品コードと版を入れると自動で商品名が反映されるように、
コントロールソースに
「=DLookUp("商品名","T_商品","商品コード='" & [コード] & "'" & "And 版='" & [版] & "'")」、
としました。

構造情報は以下の通りです。

メインフォームの元は、
<テーブル:T_入出庫>
・申請書番号 ☆「T_入出庫明細」と結合
・提出日
・担当者
・備考 など

サブフォームの元は、
<クエリ:Q_入出庫明細_サブフォーム>
・申請書番号(T_入出庫明細)
・商品ID(T_入出庫明細)
・商品コード(T_商品)
・版(T_商品)
・商品名(T_商品)
・数量(T_入出庫明細)

Q_入出庫明細_サブフォームの元は、
<テーブル:T_入出庫明細>
・申請書番号
・商品ID ☆「T_商品」と結合
・数量
<テーブル:T_商品>
・商品ID
・商品コード
・商品名
・版
・仕入原価
・備考 など

です。
宜しくお願致します。

書籍の在庫管理のフォーム作成で、、
メインフォームとサブフォームにわけました。

しかし、サブフォームで
1つの商品を入力し、2番目の商品を入力すると、
先の1つめの商品入力の履歴が、2番目と同じになってしまいます。
(数量だけは1番目の入力通り残ってくれてます)

<サブフォーム>
------------------------------
申請書番号、商品コード、版、商品名、数量
------------------------------
1行目 0001 060 3-5 ACCESS入門書 5
2行目 0001 061 5-6 ACCESS応用書 3
-------------------...続きを読む

Aベストアンサー

「T_商品」 の主キーは [商品ID] ですよね?
[商品ID]、[商品コード]、[商品名]、[版]の関係が解らないけど
サブフォームに[商品ID]が設けてないのは何か理由があるのですか?

あと 「T_入出庫明細」の主キーはどうなってますか?


人気Q&Aランキング

おすすめ情報