Access VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


58 / 500 ページ ←次へ | 前へ→

【12152】INSERTINTOの条件式について
質問  DAV  - 12/6/4(月) 11:15 -

引用なし
パスワード
   どなたかお教えください。

INSERTINTOのWHERE句の所で、
◆の部分がエラーになってしまいます。
どうにか、MKが◆を条件に入れられないでしょうか?
以下がエラーになります。

WHERE (((mysql.MK)="◆") AND ((mysql.配達月)=201205));
・ツリー全体表示

【12151】検索フォームを用いてデータの流用登録を...
質問  MagMag  - 12/5/17(木) 8:58 -

引用なし
パスワード
   OS:WindowsXP
Access Version:2007

フォームの検索用コンボボックスを用いてデータを検索し、検索したデータを
フォーム上で修正して「流用」ボタンを押すと、検索した元のデータは変わら
ずに、修正したデータを新しいレコードに追加するフォームを作成したいと
思っています。

注)新しいレコードのNoは現在の最終レコードのNoの値を1つ増やしたものに
なるのですが、オートナンバーではないので、手動で増やす必要があります。


テーブル1及びテーブル2からクエリ1を作成し、クエリ1をもとにフォーム1を
作成します。

テーブル1
 No(数値:整数)
 名前(テキスト)
 部署名(テキスト)
 出身地(数値:整数)
 内線(テキスト)

テーブル2
 ID(数値:整数)
 出身地(テキスト)

クエリ1
 No(テーブル1)
 名前(テーブル1)
 部署名(テーブル1)
 出身地(テーブル2)
 内線(テーブル1)

フォーム1には検索用コンボボックスと出身地を選択する用のコンボボックス
を作成。
「流用」ボタンのクリック時のイベント プロシージャを

Private Sub 流用_Click()
  DoCmd.RunCommand acCmdSelectRecord
DoCmd.RunCommand acCmdCopy
DoCmd.GoToRecord , , acNewRec
DoCmd.RunCommand acCmdPasteAppend
End Sub

としました。

流用したいデータを選択し修正した後「流用」ボタンをクリックすると
アクションの実行エラーが出てしまいます。

−−−−−−−−−−−−−−−−−−−−−−−−−−−−
マクロ名
フォーム1 : コンボ1 : AfterUpdate : 埋め込みマクロ

条件
True

アクション名
オブジェクトからレコードの検索

引数
-1, , 先頭のレコード, ="[No] = " & Str(Nz(Screen.ActiveControl,0))

エラー番号
2950
−−−−−−−−−−−−−−−−−−−−−−−−−−−−

流用登録以前に、検索用コンボボックスのところでエラーが出ているよう
ですが...

どのようにしたらデータの流用登録ができるでしょうか。
よろしくお願い致します。
・ツリー全体表示

【12150】Re:アクセスのテーブル上で別テーブルの...
回答  カダワン  - 12/5/10(木) 16:21 -

引用なし
パスワード
   ▼mimi さん:

テーブル上ではなく、追加クエリーでやっては
いかがでしょうか?


>OS:XP
>Access Version:2000
>
>はじめまして。
>アクセスのテーブル上で別テーブルの内容を反映させるのは可能か教えていただきたいです。
>
>例えば テーブル1
>品番  商品名       価格   取引先コード 取引先名
>111   水         80    001     ○○商事
>222   お茶        100   002    ○○物産
>333   ジュース      120   003    ○○株式会社
>
>のようなテーブルがあるとして同じようなテーブル(テーブル2)を新規に作り
>
>その新しいテーブル上で、品番のところにコードを入力すると、商品名・価格・取引先コード・取引先名のフィールドが
>自動で表示されるようにしたいのです。その後に検査証日付というフィールドを追加して日付入力を行い、保存・管理していこうと考えています。
>
>(検査証が来たものに対して、その日付を入力して管理していきたいのですが、
>同じ品番の商品に対して頻繁に検査証が発行されるため、毎回商品名・価格・取引先コード・取引先名を手入力する作業を省きたいのです)
>宜しくお願いします。
・ツリー全体表示

【12149】レポート:複数行印刷時のブサイク解消
質問  カダワン  - 12/5/10(木) 15:53 -

引用なし
パスワード
   いつもお世話になります。
解決策を模索しています。
アイディアがある方にご教示いただければ幸甚です。

レポートについてですが、備考欄のみ複数行にしています。
レポートで印刷する時、印刷時拡張で複数行の場合は高さ
が拡張されます。
これはGOODですが、備考欄のみ高いBOXになり、他の項目の
テキストボックスは拡張されず1行分の高さなので、どうも
間の抜けたレポートになってしまいます。

テキストボックスの境界線を使い表示したいのですが、
(エクセルのような見た目)なにか方法はありますでしょうか。

境界線をあきらめて線でなんとかしなければ難しいでしょうか?
その場合の方法もご教示頂けたら大変助かります。
よろしくおねがいいたします。
・ツリー全体表示

【12148】Re:クエリについて
回答  黒猫  - 12/5/9(水) 9:35 -

引用なし
パスワード
   ▼桐野 さん:
>テーブル1とテーブル2を使って、クエリで、
>ID2 氏名
>
>というのを作り、クエリ上でID2にたとえば「3」と入力すると、氏名に「うううう」が表示されるようにしたいのですが、どのようにすればいいのでしょうか?

クエリで、上記の様な事をするのは、不可能だと思います。

できるとすれば、たとえばデータシート形式のフォームを作成し、
データ追加されたら、テーブル1のデータを参照してフォームに
書き出す様な事をマクロで表現したらできるかもしれません。
・ツリー全体表示

【12147】アクセスのテーブル上で別テーブルの内容...
質問  mimi  - 12/5/8(火) 20:20 -

引用なし
パスワード
   OS:XP
Access Version:2000

はじめまして。
アクセスのテーブル上で別テーブルの内容を反映させるのは可能か教えていただきたいです。

例えば テーブル1
品番  商品名       価格   取引先コード 取引先名
111   水         80    001     ○○商事
222   お茶        100   002    ○○物産
333   ジュース      120   003    ○○株式会社

のようなテーブルがあるとして同じようなテーブル(テーブル2)を新規に作り

その新しいテーブル上で、品番のところにコードを入力すると、商品名・価格・取引先コード・取引先名のフィールドが
自動で表示されるようにしたいのです。その後に検査証日付というフィールドを追加して日付入力を行い、保存・管理していこうと考えています。

(検査証が来たものに対して、その日付を入力して管理していきたいのですが、
同じ品番の商品に対して頻繁に検査証が発行されるため、毎回商品名・価格・取引先コード・取引先名を手入力する作業を省きたいのです)
宜しくお願いします。
・ツリー全体表示

【12146】DAOを使用したプログラムが動作しなくな...
質問  nikami E-MAIL  - 12/4/27(金) 9:06 -

引用なし
パスワード
   ACCESS2000をWINDOWS7(64)で使用しておりますが急に動作しなくなりました。
DAOを使用したプログラムが使用できません。仕方なくADOに書き換えて使用しておりますが他にもDAOを使用した物が有りますので出来ればそのまま使用したいのでACCESSを再インストールしたのですが解決できません。OSの方に問題が有るのでしょうか?
・ツリー全体表示

【12145】クエリについて
質問  桐野  - 12/4/13(金) 22:13 -

引用なし
パスワード
    次のようなテーブル2つがあります。
<テーブル1>
ID1 氏名
1 ああああ
2 いいいい
3 うううう
4 ええええ
5 おおおお

<テーブル2>
ID2

テーブル1とテーブル2を使って、クエリで、
ID2 氏名

というのを作り、クエリ上でID2にたとえば「3」と入力すると、氏名に「うううう」が表示されるようにしたいのですが、どのようにすればいいのでしょうか?

1. ID2 氏名
   3

2. ID2 氏名
   3 うううう

3. ID2 氏名
   3 うううう
   2

4. ID2 氏名
   3 うううう
   2 いいいい
・ツリー全体表示

【12144】Re:参照設定
回答  hatena  - 12/4/2(月) 17:05 -

引用なし
パスワード
   > VBAを起動すると下記のアラームが発生します。
> 「イベントプロパティに指定した式クリック時でエラーが発生しました:  Microsoft AccessがOLEサーバーまたはActiveXコントロールと通信しているときにエラーが発生しました。

データベースファイルが破損している可能性があります。

新規にデータベースファイルを作成して、旧データベースファイルのすべてのオブジェクトを新データベースファイルにインポートしてみてください。
・ツリー全体表示

【12143】参照設定
質問  こぶとり  - 12/3/31(土) 21:38 -

引用なし
パスワード
   お世話になります。超初心者のこぶとりと申します。
access2010のアラームについてお聞かせお願いします。

【パソコン環境】 windows7
【参照設定】
 visual Basic For Applications
 Microsoft Access 14.0 ObjectLibrary
 OLE Automation
 Microsoft DAO3.6 ObjectLibrary
 Microsoft ActiveX Data Objects 2.8 Library
 Microsoft Office 14.0 ObjectLibrary

【質問内容】
 VBAを起動すると下記のアラームが発生します。
 「イベントプロパティに指定した式クリック時でエラーが発生しました:  Microsoft AccessがOLEサーバーまたはActiveXコントロールと通信しているときにエラーが発生しました。

対応策についてご教示お願いいたします。
・ツリー全体表示

【12142】Re:複数名称抽出クエリが クエリを完了...
お礼  pon  - 12/3/7(水) 14:30 -

引用なし
パスワード
   追記


内容が変わったのと
VBAでは無いので

複数名称抽出クエリが 重いです
ht tp://www.moug.net/faq/viewtopic.php?t=62467
へ引っ越しました

なにか アドバイス有りましたら、引っ越し先にお願いいたします
・ツリー全体表示

【12141】Re:複数名称抽出クエリが クエリを完了...
発言  pon  - 12/3/7(水) 12:44 -

引用なし
パスワード
   すいません
引っ越しします
・ツリー全体表示

【12140】複数名称抽出クエリが クエリを完了でき...
質問  pon  - 12/3/7(水) 10:03 -

引用なし
パスワード
   アクセス2010

こんにちは
クエリ・SQLともレベルは高くありません
よろしくお願いいたします


石名 VERDE FONTEIN なんですが、
カタカナ記載のため
ベルデフォンティン    ベルデフォンテン    ヴェルデフォンティン
ベルデフォンテン    ベルデフォンテ    ベルデフォンテーン
とかとなっています

どういうテーブル構造がいいのかよくわかりませんが
現状石名テーブルは
nm1    nm2    nm3    nm4    nm5    nm6
ベルデフォンティン    ベルデフォンテン    ヴェルデフォンティン    ベルデフォンテン    ベルデフォンテ    ベルデフォンテーン

となっています

とりあえず名前1での抽出
SELECT DISTINCT
DT_TBL.*, [石TBL (4)].nm1, [石TBL (4)].nm2, [石TBL (4)].nm3,
        [石TBL (4)].nm4, [石TBL (4)].nm5, [石TBL (4)].nm6
FROM DT_TBL, [石TBL (4)]
WHERE
(((DT_TBL.F1) Like "*" & [石TBL (4)]![nm1] & "*"));
では
CPU使用率50%とかでアクセス2010は応答なしで数10秒後にクエリを実行して
結果が表示されます

次に名前2を追加
WHERE
(
((DT_TBL.F1) Like "*" & [石TBL (4)]![nm1] & "*"))
OR
(
((DT_TBL.F1) Like "*" & [石TBL (4)]![nm2] & "*"))
;
とすると、同じようなCPUの使用率の結果

クエリを完了できません。
クエリ結果のサイズがデータベースの最大サイズ (2 GB) より大きいか、
クエリ結果を一時的に保存するディスクの空き容量が不足しています。

と表示されてしまいます

Q1
やりたいことは
nm1〜6まで、突合せした結果を抽出したいと思っています
どのようなクエリを組めば良いでしょうか


Q2
石名テーブルで
名前を縦方向に持たせる方法もあると思いますが
個人的には処理しにくいような気もします

通常は
縦横どちらで管理するのが良いのでしょうか
メリットデメリット含めてアドバイス頂けると嬉しいです

Q3
アクセス2010は応答なしで数10秒後にクエリを実行
みたいなことに時折遭遇しますが
アクセス2010は応答なし
は、どういう状況なのでしょうか
これに遭遇するのは処理方法が悪いためのような気もします
がどうなんでしょう


以上、アドバイスよろしくお願いいたします
・ツリー全体表示

【12139】Re:MDBの全テーブルをMySQLに作成するマ...
お礼  Excel_VBA実務者  - 12/3/2(金) 2:44 -

引用なし
パスワード
   ▼gomashio さん:返信をもらえまして感謝します。

>3.各クライアントPCは、WinサーバーのACCESSを参照し、DBを使用する。

ご紹介下さったのは、次の使用形態と理解しました。
各PCのマクロMDB > サーバのテーブルMDB > ODBCドライバ > サーバのMySQL DB

当方は、次の(マクロ作成)経験を有しています。
PCのマクロMDB > PCのODBCドライバ > サーバのMySQL DB

返信を読ませてもらった限り、gomashioさんは「今回の質問」をご理解下さっている様に思います。当方の事情は、次の様なものです。
1)phpmyAdmin等でSQL文を発行して、MySQLにテーブルを「手動作成」できる事は知っている。
2)「事情があって」一部のテーブルの「定義」を年5〜10回「変更」したい。
3)Acccess MDBの「テーブル定義」は「手動変更」できる。
4)MySQL側の「テーブル定義」の「変更」を、phpmyAdmin等を用いず、MDBの「テーブル定義」を参照して、マクロで自動化したい。
・ツリー全体表示

【12138】Re:MDBの全テーブルをMySQLに作成するマ...
お礼  Excel_VBA実務者  - 12/3/2(金) 2:25 -

引用なし
パスワード
   ▼gomashio さん:ありがとうございます。

>VBA実務者さんのPCっとWinサーバーにODBCの設定をします。

MySQL ODBCドライバをダウンロードして、インストールして、
コントロールパネル?>管理ツール を用いて、データソースを作成して、
Excel や Access からMySQL 「の既存のDB」にアクセスするマクロは経験済みです。

今回は、MySQL側にデータベース(テーブル)が未作成の状態から、MDB内のテーブル
を参照して、同じテーブルを自動的に作成したい、とする要望です。

なお、MDBとMySQLは、対応するデータ型が少し違うから、単純にはMDBと同じテーブルをMySQLに作成できない、事も承知しています。
・ツリー全体表示

【12137】Re:MDBの全テーブルをMySQLに作成するマ...
発言  gomashio  - 12/3/1(木) 17:29 -

引用なし
パスワード
   ▼Excel_VBA実務者 さん:こんにちは、gomashioといいます。

追記です。
VBA実務者さんのPCっとWinサーバーにODBCの設定をします。
参考サイトは、
HTTP://www.tryhp.net/ODBCMySQL.htm
・ツリー全体表示

【12136】Re:MDBの全テーブルをMySQLに作成するマ...
発言  gomashio  - 12/3/1(木) 15:36 -

引用なし
パスワード
   ▼Excel_VBA実務者 さん:こんにちは、gomashioといいます。
質問の自動マクロの件は、わかりませんが、
その他の案として、発言します。
例えば、ACCESSソフトが全PCに設定されていない。
VBA実務者さんのPCのみACCESSソフトが設定されている場合、
VBA実務者さんのPCのODBCにMySQLの接続設定をします。
同様の設定をWinサーバーにMySQLの接続設定をします。

1.VBA実務者さんのPCから、ACCESSを作成し、必要なテーブルを手作業でリンクする。
2. 1.で作成したACCESSをWinサーバーの共有フォルダーに置く。
3.各クライアントPCは、WinサーバーのACCESSを参照し、DBを使用する。
4.MySQLのテーブル変更やテーブル追加の場合、手作業で、
VBA実務者さんのPCでACCESSに再リンクし、変更後、WinサーバーのACCESSを上書きコピーする。(誰もしようしていない時間に置き換えする)

という感じで、私は運用しています。自動マクロではありません。
目的と違うかもしれませんが、参考までに記載します。
以上、
・ツリー全体表示

【12135】MDBの全テーブルをMySQLに作成するマクロ
質問  Excel_VBA実務者  - 12/2/28(火) 9:34 -

引用なし
パスワード
   【質問】(2週間以内に解決したいです)
次のAccessマクロを作成するのに参考になるサイトをご存知でしたら、幾つでもご紹介下さい。
1)MySQL(又はSQLiteも可)に、DBを新規作成して、2)AccessのMDB内に作成済の全テーブルを、そのDBに新規作成する(=テーブルを移行する)マクロを作りたいです。
もしもDB内に既存テーブルが有れば、全てテーブル自体を削除して、新規作成できるとなお好ましいです。

【事情】
Excel VBA を実務で使用している者です。
Accessも、テーブルMDBを共有フォルダに置いて、3名未満が同時更新し得る小さな情報共有プログラムは経験済みです。
この度、この情報共有プログラムを、LAN内の最大10台PCから更新され得る、プログラムにバージョンアップする事になりました。
Linuxサーバを立てて、MySQLまたはSQLiteを動かして、各PCのAccessマクロから操作させようと考えています。
・ツリー全体表示

【12134】Re:インポートについて
発言  ちん  - 12/2/5(日) 16:39 -

引用なし
パスワード
   ▼みき さん:こんにちわ、ちんといいます。
日がたってしまい、解決されてるかもしれませんが。
クエリーだけで、処理したいのであれば、参考までに記述します。
やり方は、ちょっと邪道かもしれないので。本来であれば、VBAで行うべき処理ですが、わたくしはACCESSが得意でないです。

4つのクエリーを作成する前に、T_取込用日報データに項目を一つ追加ください。
T_取込用日報データに、FLG項目を整数で追加ください。
この項目に、新規データの場合1 、既存データの場合2 を設定します。

1.新規(追加)データの更新クエリーで、日報データに存在しないかを確認します。
UPDATE T_取込用日報データ SET T_取込用日報データ.FLG = 1
WHERE 0 = (SELECT COUNT(*) FROM 日報データ WHERE T_取込用日報データ.ID=日報データ.ID);
※WHERE区で0=・・・ は、同一のデータ0件と言う意味のチェックです。
0件の場合、T_取込用日報データ.FLGに1を更新します。(新規データ)

2.更新データの更新クエリーで、日報データに同一のデータがあるかを確認します。
UPDATE T_取込用日報データ SET T_取込用日報データ.FLG = 2
WHERE 0 < (SELECT COUNT(*) FROM 日報データ WHERE T_取込用日報データ.ID=日報データ.ID);
※WHERE区で0<・・・ は、同一のデータ1件以上発見と言う意味のチェックです。
1件以上の場合、T_取込用日報データ.FLGに2を更新します。(更新データ)

3.追加クエリーで、1.で処理でT_取込用日報データ.FLG=1の場合、追加します。
INSERT INTO 日報データ ( ID, データ1, データ2, データ3 )
SELECT T_取込用日報データ.ID, T_取込用日報データ.データ1, T_取込用日報データ.データ2, T_取込用日報データ.データ3
FROM T_取込用日報データ
WHERE T_取込用日報データ.FLG=1;

4.更新クエリーで、2.処理でT_取込用日報データ.FLG=2の場合、更新します。
UPDATE テーブル1, テーブル2 SET 日報データ.データ1 = T_取込用日報データ.データ1, 日報データ.データ2 = T_取込用日報データ.データ2, 日報データ.データ3 = T_取込用日報データ.データ3
WHERE T_取込用日報データ.FLG=2 and T_取込用日報データ.ID = 日報データ.ID

クエリーの作成方法は、
クエリー新規作成->何でも良いので、テーブルを1つ選択し、
デザインビュー -> SQLビューに切り替え、
私が記述した、SQL文をコピーし、SQLビューへ貼り付けてください。
あとは、日報データの項目と、T_取込用日報データの項目をセットして下さい。
※ここで記述した、.データ1,データ2,データ3 を本来の項目に変更ください。
※デザインビューに切り替えて、項目セットしてもいいです。

クエリーは、4つありますので、同様に1.〜4.まで作成してください。

説明不足かもしれませんが、クエリーでやる場合の方法として。
以上、参考までに・・・
・ツリー全体表示

【12133】Re:期間抽出 between
お礼  まよい  - 12/2/4(土) 8:58 -

引用なし
パスワード
   ▼ちん さん:
>▼まよい さん:こんにちわ、ちんといいます。
>>日付に関してご教示ください。
>>
>>下記はDateFromからDateToまでの期間のデータを抽出しようとしたものです。
>>直接betweenのあとに#9/28/2011# And #11/8/2011#と数字を入れればうまくいくのですが、変数に変更すると、下記のとおり日付構文エラーや、コンパイルエラーになってしまいます。
>>
>>どう修正していいか分かりません。ご教示ください。
>>よろしくお願いします。
>>因みに、変数をDate、Variant、Stringに変えてもだめでした。
>>
>>
>>& "WHERE (((Mdate) Between #&DateFrom&# and #&DateTo&#));" ・・・日付構文エラー
>>
>>& "WHERE (((Mdate) Between #"&DateFrom&"# and #"&DateTo&"#"));" ・・コンパイルエラー、構文エラー
>
>& "WHERE Mdate Between #" & format(DateFrom,"yyyy/mm/dd") & "# and #" & format(DateTo,"yyyy/mm/dd") & "#;"
>
>それか、
>& "WHERE Mdate Between #" & format(DateFrom,"dd/mm/yyyy") & "# and #" & format(DateTo,"dd/mm/yyyy") & "#;"
>
>で、どうでしょうか?

ちんさん

有り難うございました。
上のformatを使ったSQLでうまくいきました。

次に進めます。
・ツリー全体表示

58 / 500 ページ ←次へ | 前へ→
ページ:  ┃  記事番号:
1078312
(SS)C-BOARD v3.8 is Free