Access VBA質問箱 IV

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

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


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

【12213】2つの同じ形式のテーブルの比較
質問  たけはる E-MAIL  - 12/11/21(水) 9:18 -

引用なし
パスワード
   初めてアクセスでシステムを作っています。

下記のテーブルを比較してフィールドのいずれかが違うレコードと新規レコードを抽出したいと考えています。
新規レコードは不一致クエリで出来るのですが変更されたレコードを抽出するのが出来ません。

テーブルは下記になります。
【T傷病名マスタ】←旧データ
傷病名コード
傷病名
ショウビョウメイカナ
ICD10コード
大分類コード
複数分類コード
音別
登録者名←比較しない
登録日←比較しない
更新者名←比較しない
更新日←比較しない

【T傷病名マスタ取込用】←新データ
テーブル構造は同じ
日付以外のフィールドは全て文字形式

尚、ここの12049番を見たのですが

SELECT 新しいデータ.*
FROM 前回のデータ
INNER JOIN 新しいデータ ON 前回のデータ.テーブル=新しいデータ.テーブル
WHERE Not ((nz(前回のデータ![品番],"")=nz(新しいデータ![品番],"")) And
(nz(前回のデータ![区分],"")=nz(新しいデータ![区分],"")) And
(nz(前回のデータ![数量],"")=nz(新しいデータ![数量],"")) And
(nz(前回のデータ![転送先],"")=nz(新しいデータ![転送先],"")) And
(nz(前回のデータ![単位],"")=nz(新しいデータ![単位],"")) And
(nz(前回のデータ![KEY],"")=nz(新しいデータ![KEY],"")))

新しいデータと前回のデータに何を記述するのか良く判りません。
見た感じではテーブル名、フィールド名とは思えないのですが…

誠に申し訳ございませんがご教授願います。
・ツリー全体表示

【12211】禁止文字がわからない
質問  comakomako  - 12/11/20(火) 15:10 -

引用なし
パスワード
   ああ|□
・ツリー全体表示

【12210】1
質問  comakomako  - 12/11/20(火) 15:09 -

引用なし
パスワード
   ああ|□
・ツリー全体表示

【12209】Re:データの検索方法
回答  かるびの  - 12/11/17(土) 1:42 -

引用なし
パスワード
   >Query_ZZZ
>[data]    [aaa]    [bbb]    [ccc]    [ddd]
>111        111        555        -        -
>5as        -        -        -        -
>00e        -        -        -        -
>222        000        222        -        444
>333        666        -        -        -
>7po        -        -        -        -
>444        -        -        999        -
>555        777        -        333        -
>666        -        -        -        888
 クロス集計クエリを作ってください。
 集計値は、First関数を使うことになると思います。

 ただし、クロス集計クエリの場合、
列見出し、つまり「aaa」とか「bbb」などを値に持つフィールドが必要になります。
 また、Tabel_AAAとTable_CCCとを結合させるためのフィールドも必要になります。
 これらのフィールドをどのようにして設けるかが鍵になりますね。


>エクセルでは正常に動くのですが
 アクセスとエクセルでは発想が全く異なります。
 エクセルで動くからといって、アクセスで同じように動かせるとは限りません。
 エクセルでは、まずワークシートがあって、それに合わせて、計算方法ないし処理方法を考えます。
 アクセスでは、計算方法ないし処理方法に合わせて、テーブルを設計します。
 アクセスでは、テーブルの設計方法が最も重要になります。
・ツリー全体表示

【12208】サブフォームからのデータ追加
質問  きらずあげ  - 12/11/16(金) 16:42 -

引用なし
パスワード
   現在、仕事で作業時間を計測するツールを作成しています。
メインフォームに組み込まれたサブフォームのデータを履歴テーブルに
追加したいのですが上手くいきません。
サブフォームのデータはテーブルのデータを表示しています。
構造
メインフォーム
サブフォーム
サブフォームデータテーブル
履歴テーブル

お分かりになる方宜しくお願いします
・ツリー全体表示

【12207】データの検索方法
質問  ひな  - 12/11/15(木) 20:08 -

引用なし
パスワード
   はじめまして。

エクセルで管理していた大量のデータを
Access で管理しようと思い初心者ながら少しづつ使っています。

エクセルでは正常に動くのですが
Accessでは下記の様な表示(抽出)をしたい場合、
どの様に記述したらよろしいのでしょうか。


テーブルはテキストからインポートしたテーブルが
3個(Table_AAA、Table_BBB、Table_CCC)あります。

Table_AAA [ID] [Name]
Table_BBB [ID] [serial]
Table_CCC [data]

※ Table_AAA [ID] と Table_BBB [ID] は紐付け
※ Table_CCC [data] と Query_ZZZ [data] は同じデータ
※ フィールド名は[]で記載しています。

値は下記に記載しております。

Table_AAA
[ID]    [Name]
0001    aaa-111
0002    bbb-222
0003    ccc-555
0004    ddd-222
0005    bbb-111
0006    aaa-333
0007    aaa-555
0008    ddd-666
0009    ccc-444
0010    aaa-222

Table_BBB
[ID]    [serial]
0001    111
0002    222
0003    333
0004    444
0005    555
0006    666
0007    777
0008    888
0009    999
0010    000

Table_CCC
[data]
111
5as
00e
222
333
7po
444
555
666

下記のクエリを表示させたく思っております。

Query_ZZZ
[data]    [aaa]    [bbb]    [ccc]    [ddd]
111        111        555        -        -
5as        -        -        -        -
00e        -        -        -        -
222        000        222        -        444
333        666        -        -        -
7po        -        -        -        -
444        -        -        999        -
555        777        -        333        -
666        -        -        -        888

簡単に言いますと
Table_CCC [data] の文字を含むデータを Table_AAA [Name] から検索し
そのデータに該当する シリアルナンバーを Table_BBB [serial] から見つけ
Query_ZZZ の該当フィールドへシリアルを表示する。
(データが無い場合には空欄等)
です。

可能なのでしょうか?

Googleでもどういう検索をすれば希望の情報にヒットするのかも
不明でしたので、可能であればご教授いただければ幸いです。

よろしくお願いいたします。
・ツリー全体表示

【12206】ユニオンクエリーの作り方
質問  M_S  - 12/11/9(金) 16:31 -

引用なし
パスワード
   売上作成用出荷明細
売上問合の二つのテーブルから製番を出荷数のあるもののみ、売上数のあるもののみ同時に表示したいので、下記のようなユニオンクエリを作成しましたが、'売上作成用出荷明細.出荷数の構文エラー 演算子がありません'のエラーが出て進みません。どう直したらいいのでしょうか。教えて下さい。初めてのユニオンクエリーです。


SELECT
売上作成用出荷明細.製番,
売上作成用出荷明細.出荷日, 
売上作成用出荷明細.出荷数,  
売上作成用出荷明細.製番予備1

FROM 売上作成用出荷明細

UNION SELECT
売上問合.製番,
売上問合.売上日,
売上問合.売上金額,
売上問合.売上数

FROM 売上問合;
・ツリー全体表示

【12205】Re:テーブル項目の自動取得の並びについて
質問  しはん  - 12/11/2(金) 16:15 -

引用なし
パスワード
   すみません。
急な作業が立て込みどうしても閲覧ができず、今時分になってしまいました。

出来ました!!ありがとうございます。

ついでにで教わって申し訳ありませんが
記載頂いています「CopyFromRecordset」は使ったことがないのですが
どの様になるのでしょうか?


▼小僧 さん:
>▼しはん さん:
>こんにちは。
>
>>参照中に並び位置が変わってしまいます。
>
>列の並び順を常に意図通りに並べたいのであれば
>列を固定する必要があると思います。
>
>Access側で保持している列の並び順通りに表示したいのであれば
>
>>Private Function FnGetArrayFldName(argsTblName As String) As String()
>>Dim voRs As ADODB.Recordset
>>Dim vsArryFldName() As String
>>Dim i As Long
>Dim cn As ADODB.Connection '←追加
>
>  Set cn = CurrentProject.Connection '←追加
>    cn.CursorLocation = adUseClient '←追加
>
>>Set voRs = CurrentProject.Connection _
>>.OpenSchema(Schema:=adSchemaColumns, _
>>Restrictions:=Array(Empty, Empty, argsTblName, Empty))
>
>Set voRs = cn.OpenSchema(Schema:=adSchemaColumns, _
>Restrictions:=Array(Empty, Empty, argsTblName, Empty)) '←変更
>
>voRs.Sort = "ORDINAL_POSITION" '←追加
>>
>>i = 0
>
>・
>・
>・
>
>の様にソートが可能です。
>ですが、あくまでも「Accessが保持している順番」ですので
>ある日突然違った並び順になっても文句が言えませんね。
>
>
>列の追加の度にメンテナンスが必要ですが、
>Excel出力用のクエリを用意して、
>ざっくり出力するのであれば TransferSpredSheetメソッド、
>細かな制御をしながら出力するのであれば CopyFromRecordsetメソッドを
>利用してエクスポートするのが良さような気がします。
・ツリー全体表示

【12204】Re:抽出条件を含んだ追加クエリについて
お礼  buri  - 12/11/2(金) 7:08 -

引用なし
パスワード
   hatenaさん ありがとうございます。
おかげさまで解決いたしました


▼hatena さん:
>>           "SELECT T_元明細.*, '" & i & "' AS データ番号 FROM T_元明細" & _
>
>T_元明細.*, が余分では。
>
>          "SELECT '" & i & "' AS データ番号 FROM T_元明細" & _
・ツリー全体表示

【12203】Re:抽出条件を含んだ追加クエリについて
回答  hatena  - 12/11/1(木) 8:25 -

引用なし
パスワード
   >           "SELECT T_元明細.*, '" & i & "' AS データ番号 FROM T_元明細" & _

T_元明細.*, が余分では。

          "SELECT '" & i & "' AS データ番号 FROM T_元明細" & _
・ツリー全体表示

【12202】Re:一つのレポートでいろんな条件
お礼  comakomako  - 12/10/31(水) 17:13 -

引用なし
パスワード
   ▼小僧 さん

せっかく回答いただいたのに、別の仕事が忙しくなってしまいなかなか試せないのですが、何とかやってみます。
ありがとうございました。
・ツリー全体表示

【12201】抽出条件を含んだ追加クエリについて
質問  buri  - 12/10/30(火) 23:41 -

引用なし
パスワード
   Accessの追加クエリ(SQL)について教えて下さい。
有る明細の項目から、必要な番号を取り出して別テーブルに追加したい
のですが、どうもうまくいきません

以下に2つのテーブルがあったとします。
内容から、データ番号を抽出して別テーブルに項目として設けて管理したい。
明細には、必ずデータ番号:と記入されていないものもあります。

テーブル1:T_元明細
No 内容              商品コード 商品名
1 文章が・・・ データ番号:A0001 また文書  5001    商品A
2 文章が・・・ B0001 また文書         6001    商品D

テーブル2:T_対象明細
No 内容              商品コード 商品名 データ番号
1 文章が・・・ データ番号:A0001 また文書  5001    商品A  A0001
2 文章が・・・ B0001 また文書        6001    商品D  B0001

※抽出条件をi にしているのは、別テーブルに T_データ番号という3つめの
 テーブルが存在しており、抽出条件をループをして追加する予定です。
 まずは、直接入れてみたのですが、実行エラー424 オブジェクトが必要です。
 とエラーが出て追加されませんでした。
 Accessは2000です。

  Dim db As Database
  Dim rs As Recordset
  Dim i As String
  
  i = "A0001"
  
    DoCmd.SetWarnings False
    
    DoCom.RunSQL "INSERT INTO T_対象明細 ( データ番号 )" & _
           "SELECT T_元明細.*, '" & i & "' AS データ番号 FROM T_元明細" & _
           "WHERE (((T_元明細.内容) Like '*" & i & "*'));"
        
    DoCmd.SetWarnings True
・ツリー全体表示

【12200】フォームの印刷について
質問  miya  - 12/10/30(火) 23:02 -

引用なし
パスワード
   Accecc2007を使っています。
超初心者です。
フォームの印刷でヘッダが印刷されません。
印刷プレビューではきちんとヘッダは表示されています。
なぜでしょうか?
よろしくお願いします。
・ツリー全体表示

【12199】Re:一つのレポートでいろんな条件
回答  hatena  - 12/10/30(火) 14:57 -

引用なし
パスワード
   ※等幅 を設定するのを忘れたので、削除して再投稿しました。

> レポート:
> 1.商品CD順(全部出し)
> 2.分類ごと改ページで商品CD順
> 3.店舗ごと改ページで分類順の商品CD順

並べ替え/グループ化の設定(2007以降は「グループ化と並べ替え」)で
グループに下記の式を設定すればどうでしょうか。

条件は フォーム(名前 Frm1)上の オプショングループ(名前 Opt1)で指定するとします。

オプション値が 1 の時は、1.商品CD順(全部出し)・・・・


フィールド名/式           並べ替え順
-----------------------------------------------
=Choose(Forms!Frm1!Opt1,0,分類,店舗) 昇順    グループヘッダー表示
=Choose(Forms!Frm1!Opt1,0,0,分類)   昇順
商品CD

グループヘッダーの「改ページ」を「カレントセクションの前」に設定。

AC2003以前の場合で説明。2007以降も同様に設定する。
・ツリー全体表示

【12198】Re:複数PCから共有データに通し番号をつ...
お礼  ゆう  - 12/10/29(月) 14:59 -

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

こんにちは。

>追加クエリの受注番号の所に
>
>> nz(DMax("受注番号","T_入力"),0)+1
>
>を指定した方がより安全な気がします。

この通りに直して試してみたところ、2台で交互に
データ入力してもちゃんと新しい番号を取得できました。

教えて頂きましてありがとうございました。
・ツリー全体表示

【12197】Re:帳票形式のオプショングループをコン...
お礼  初心 E-MAIL  - 12/10/29(月) 8:48 -

引用なし
パスワード
   hatena様、誠にありがとうございました。
理想どおりのものができました。最初は半ばあきらめていたのですが、うれしい限りです。
いつも、調べていくうちに、最終的にはhatena様のホームページにたどり着く事が多いのですが、accessの知識があるだけではなく、柔軟な独自の発想で、理想を具現化する技術はいつも感心させられるばかりです。
この度は永きにわたる御指導、大変ありがとうございました。
・ツリー全体表示

【12196】Re:帳票形式のオプショングループをコン...
回答  hatena  - 12/10/28(日) 16:13 -

引用なし
パスワード
   とりあえず下記のような方法で可能です。

オプショングループの上にテキストボックスを重ねて配置して下記の様に設定します。

コントロールソース =IIf([txtkubun] In (1,3,5),"","gggggg")
使用可能 いいえ
編集ロック はい
背景スタイル 透明
フォント名 Webdings
前景色 背景色と同じ色
フォントサイズ 72

これで、可視、不可視を切り替えることができます。
ただし、使用可能 いいえ になってますので、オプショングループをクリックすることが出来なくなります。

そこで、さらにその上にオプションボタンとそのラベルに重なるようにコマンドボタンを2つ配します。

例えば、フレーム1 に オプション1(1) オプション2(2) と配置してあるとして、
()内はオプション値

オプション1 に重ねて配置するコマンドボタンを下記のように設定します。

透明 はい
タブストップ いいえ

クリック時のイベントプロシージャ

Private Sub コマンド1_Click()
  Me.フレーム1.SetFocus
  Me.フレーム1 = 1
End Sub


オプション2に重ねた透明ボタンを同様に設定して

Private Sub コマンド1_Click()
  Me.フレーム1.SetFocus
  Me.フレーム1 = 2
End Sub
・ツリー全体表示

【12195】Re:一つのレポートでいろんな条件
回答  小僧  - 12/10/27(土) 13:13 -

引用なし
パスワード
   ▼comakomako さん:
こんにちは。

> 日付範囲を加えたり金額を加えたりしていきたいので

抽出条件を変更するだけでしたら、
OpenReport メソッドの WhereCondition 引数を利用すれば可能です。

  DoCmd.OpenReport "レポート名", acViewPreview, , _
   "金額 > 300 AND 日付 Between #2012/10/01# AND #2012/10/31#"


>レポートのレイアウトは一つなので、いろんな条件で出したいのです。

こちらはいったんレポートを不可視状態で開いて
条件を指定してレポートを保存して閉じ、
再度レポートを開く様な感じになります。

  DoCmd.OpenReport "レポート名", acViewDesign, , , acHidden
  
  With Reports![レポート名]
    .GroupLevel(0).ControlSource = "店舗"
    .Section("グループフッター0").ForceNewPage = True
    .OrderBy = "分類, 商品CD"
    .OrderByOn = True
  End With
    
  DoCmd.Close acReport, "レポート名", acSaveYes
  
  DoCmd.OpenReport "レポート名", acViewPreview

ご参考になれば幸いです。
・ツリー全体表示

【12194】Re:複数PCから共有データに通し番号をつ...
回答  小僧  - 12/10/27(土) 12:16 -

引用なし
パスワード
   ▼ゆう さん:
こんにちは。


> ワークテーブルに新規データを入力後、
> 追加クエリで元のデータに追加して
> 通し番号を取得、
> その後ワークテーブル側のデータを
> 削除するようにしましたが、合っていますか?

ほんのわずかなタイミングですが、
2台以上からの端末から操作した場合、
値がバッティングする場合があります。
追加クエリの受注番号の所に

> nz(DMax("受注番号","T_入力"),0)+1

を指定した方がより安全な気がします。


>Requery は必要でしょうか?

画面を再描画する際には必要となりますが、
テーブルに値を入れるだけでしたら特に必要はないかと思われます。
・ツリー全体表示

【12193】帳票形式のオプショングループをコンボボ...
質問  初心 E-MAIL  - 12/10/27(土) 4:27 -

引用なし
パスワード
   いつもお世話になったおります。
もし、おわかりになる方いらっしゃればお伺いしたいのですが、
(ACCESS2000)を使用しており、コンボボックスで選択された値によって、2つあるオプショングループの可視・不可視、もしくは編集可、不可を設定する方法はないでしょうか。
帳票形式ということを踏まえるとVBAでの対処は難しく、条件付き書式を使用しボタンをテキストボックスで隠し、そのテキストボックスに細工するような設定になるのではないかと考えているのですが、知識も具体的な案も浮かばない状態です。

コンボボックス[txtkubun] は数値型のフィールドをコントロールにもち、(1,3,5)を選択した時、オプショングループを可視、もしくは編集可能といった具合にしたのです。ちなみにテキストボックスではこちらの掲示板にお世話になりすでに条件付き書式を用いて[txtkubun] In (1,3,5)というかたちで実現いたしまた。
何卒、よろしくお願い致します。
・ツリー全体表示

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