Access VBA質問箱 IV

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

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


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

【6452】複数のテーブルに一度に列を追加するには
質問  にしもり  - 05/10/12(水) 10:05 -

引用なし
パスワード
   こんにちは。
複数のテーブルの右端に10月累計という列を一度に追加したいのです。

alter table ORG1 add column 10月累計 Integer
alter table ORG2 add column 10月累計 Integer;

ところがALETR TABLEのステートメントの構文エラーですと出ます。
どこが違うかどなたかお教えください。
・ツリー全体表示

【6451】Re:追記
お礼  こども  - 05/10/11(火) 15:09 -

引用なし
パスワード
   ▼たん さん:
># 「何も分からない」は子供の質問、「ここが分からない」は大人の質問の仕方だと
># 私は思っています。

ACCESS開発者の殆どは子供かもしれませんよ。
ここは子供が来てはいけないのでしょうか?
・ツリー全体表示

【6450】Re:改ページ
お礼  よし  - 05/10/10(月) 17:00 -

引用なし
パスワード
   ▼よろずや さん:
>>部門CDと職種CDはそれぞれグループヘッダーを宣言しています。
>>改ページ指定ではカレントセクションの後を指定しています。
>グループフッタで改ページ指定しましょう。

 ご返事ありがとうございます。早速、テストしてみます。
・ツリー全体表示

【6449】Re:改ページ
回答  よろずや  - 05/10/9(日) 19:35 -

引用なし
パスワード
   >部門CDと職種CDはそれぞれグループヘッダーを宣言しています。
>改ページ指定ではカレントセクションの後を指定しています。
グループフッタで改ページ指定しましょう。
・ツリー全体表示

【6448】Re:データベースから該当の複数データを抽...
発言  小僧  - 05/10/9(日) 9:16 -

引用なし
パスワード
   ▼sayaya さん:
おはようございます。

>SQLに文字制限があるとか…?たしか255文字までと
>聞いたのですが。。

当方が実際に業務で使っている SQL は軽く255文字を突破していますね。
(650文字前後の SQL があります。)

strSQL = "SELECT ・・・・ " _
    & "FROM ・・・・"

のように1行に納めずに改行コードを使っていけば
255文字以上の SQL も普通に発行できると思うのですがいかがでしょうか。
・ツリー全体表示

【6447】改ページ
質問  よし  - 05/10/8(土) 18:28 -

引用なし
パスワード
   初めまして。よし と申します。
今、社員の名簿を作成中ですが改ページが上手く出来ません。
クエリで印刷データを抽出しています。(部門CD別職種CD別に並べ替え)
改ページの条件キーは2つ(部門CDと職種CD)です。
部門CDと職種CDはそれぞれグループヘッダーを宣言しています。
改ページ指定ではカレントセクションの後を指定しています。
テストデータは以下の条件で実行しました。
部門CD   職種CD
AAA    a01
AAA    a02 
BBB    b01

実行結果は6ページ印刷され次のようになりました。
1ページ目(AAA a01),2ページ目は空白
3ページ目(AAA a02),4ページ目は空白
5ページ目(BBB b01)、6ページ目は空白

試しに改ページ条件を部門CDだけにすると1枚目(AAA)2枚目(BBB)とうまくできます。
どうぞ宜しくお願いします。
・ツリー全体表示

【6446】Re:他のテーブルを参照する
お礼  中直  - 05/10/8(土) 13:03 -

引用なし
パスワード
   クロさんこんにちは。
ありがとうございました。

DLOOKUP関数を使ってみましたがどうしても
構文エラーが解決しないので、顧客マスタと
売上伝票の選択クエリを作り表示する事ができました。

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


▼クロ さん:
>おはようございます。クロです。
>DLookup関数でどうですか?
>VBエディタ側のヘルプにありますので参考にしてやってみてください。
>
>もしくはクエリで売上伝票入力テーブルとお客さん名のあるテーブルを
>お客さん番号で結合してそのクエリを売上伝票入力フォームのレコード
>ソースしては如何ですか?
・ツリー全体表示

【6445】Re:テーブルAからテーブルBへのデータ読み...
回答  Gin_II  - 05/10/7(金) 21:19 -

引用なし
パスワード
   >1レコードしか格納されません。
>全レコード格納したいのですがご教示願います。

>FIRST(受注テーブル.製番) AS [製番]

FIRST 関数の意味は理解していますか?
・ツリー全体表示

【6444】テーブルAからテーブルBへのデータ読み込み
質問  TASHIRO  - 05/10/7(金) 19:14 -

引用なし
パスワード
   大変基本的な質問ですみません。
テーブルAの複数フィールド中の"製番"フィールドのデータをテーブルBの異なるフィールドにデータを格納したいのですが、1レコードしか格納されません。
全レコード格納したいのですがご教示願います。

VBAで下記のように記述しています。
DoCmd.RunSQL "INSERT INTO ベース台帳テーブル(" & "SHI製番) " & "SELECT " & "FIRST(受注テーブル.製番) AS [製番]" & " FROM 受注テーブル"
・ツリー全体表示

【6443】Re:データベースから該当の複数データを抽...
質問  sayaya  - 05/10/7(金) 18:06 -

引用なし
パスワード
   ▼小僧 さん:
こんばんは、小僧さん。

>>ちょっと追加フィールドが多すぎて,VB上に書くのが無理みたいなので、、、
>
>こちらがちょっと解らないのですが、
>クエリのデザインビューの枠が足りない、という事なのでしょうか。
>
>それとも文字通り VBA 上で SQL を作成しているという事なのでしょうか。

私はVB上にSQLを記入していますよ!
ですので、SQLに文字制限があるとか…?たしか255文字までと
聞いたのですが。。
・ツリー全体表示

【6442】レポート(伝票印刷)
質問  ジュン  - 05/10/7(金) 17:09 -

引用なし
パスワード
   ジュンと申します。今、納品書を作成しようとしていますが、なかなか上手くいきません。
印刷条件は以下の通りです。
 ヘッダー部: 日付・得意先CD・得意先名・・・
 明細部  : 商品名・数量・単価・金額・・・
 フッター部: 納入場所・・・
データ:クエリーで作成(得意先CD・納入場所順に並べ替え指定しています)
質問点
 得意先と納入場所が同一のデータは1枚の納品書に印刷する条件ですが、異なる得意先(又は納入場所)であっても1枚の伝票に印刷されます。得意先(又は納入場所)が異なれば改ページして印刷したいのです。

ご存知の方、教えて下さい。お願いします。
 
・ツリー全体表示

【6441】Re:データベースから該当の複数データを抽...
発言  小僧  - 05/10/7(金) 15:13 -

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

>日付と、連番を結合させてYYMMDDRENBAN を作りたい

こちらについてはこんな感じでしょうか?

SELECT Max([P].[日付] & "_" & [TEST].[RENBAN]) AS 日付連番,
P.通し番号, P.処理区分
FROM [
SELECT Max(TEST.YYMMDD) AS 日付, TEST.TOSHIBANGO AS 通し番号,
Max(TEST.SYORI_KUBUN) AS 処理区分
FROM TEST
GROUP BY TEST.TOSHIBANGO
]. AS P
INNER JOIN TEST ON (P.日付 = TEST.YYMMDD)
AND (P.通し番号 = TEST.TOSHIBANGO)
AND (P.処理区分 = TEST.SYORI_KUBUN)
GROUP BY P.通し番号, P.処理区分
HAVING P.処理区分<>'3';


>ちょっと追加フィールドが多すぎて,VB上に書くのが無理みたいなので、、、

こちらがちょっと解らないのですが、
クエリのデザインビューの枠が足りない、という事なのでしょうか。

それとも文字通り VBA 上で SQL を作成しているという事なのでしょうか。
・ツリー全体表示

【6440】Re:データベースから該当の複数データを抽...
お礼  sayaya  - 05/10/7(金) 14:46 -

引用なし
パスワード
   ▼小僧 さん:
いつもお返事ありがとうございますm(_ _)m


ちょっと追加フィールドが多すぎて,VB上に書くのが無理みたいなので、、、

最初に教えてくださった、
>SELECT P.日付, P.通し番号, P.処理区分, Max(TEST.RENBAN) AS 連番
>FROM [
>SELECT Max(TEST.YYMMDD) AS 日付, TEST.TOSHIBANGO AS 通し番号,
>Max(TEST.SYORI_KUBUN) AS 処理区分
>FROM TEST
>GROUP BY TEST.TOSHIBANGO
>]. AS P
>INNER JOIN TEST
>ON (P.処理区分 = TEST.SYORI_KUBUN) AND
>(P.通し番号 = TEST.TOSHIBANGO) AND (P.日付 = TEST.YYMMDD)
>GROUP BY P.日付, P.通し番号, P.処理区分
>HAVING P.処理区分<> '3' ;

のSQLで、日付と、連番を結合させてYYMMDDRENBAN を作りたいのですが、可能でしょうか?
そうすると、YYMMDDRENBANの最大と、TOSHIBANGOのグループ化、SYORI_KUBUN <> 3でレコードをしぼれますよね?P.YYMMDDERNBANとして取得可能でしょうか?
・ツリー全体表示

【6439】Re:データベースから該当の複数データを抽...
回答  小僧  - 05/10/7(金) 13:03 -

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

>このフィールドの値はすべてユニークなものなので、グループ化は
>してはいけないですので、sqlではエラーになってしまいます。

サブクエリ([ ] で括られた中)で
日付、通し番号、処理区分でグループ化しているため、
そのままユニークなフィールドも連結できますよ^^

SELECT
P.日付,
P.通し番号,
P.処理区分,
Max(TEST.RENBAN) AS 連番,
TEST.KENSA_A AS A,
TEST.KENSA_B AS B,
TEST.KENSA_C AS C
FROM [
SELECT
Max(TEST.YYMMDD) AS 日付,
TEST.TOSHIBANGO AS 通し番号,
Max(TEST.SYORI_KUBUN) AS 処理区分
FROM TEST
GROUP BY TEST.TOSHIBANGO
]. AS P
INNER JOIN TEST
ON (P.日付 = TEST.YYMMDD)
AND (P.通し番号 = TEST.TOSHIBANGO)
AND (P.処理区分 = TEST.SYORI_KUBUN)
GROUP BY
P.日付,
P.通し番号,
P.処理区分,
TEST.KENSA_A,
TEST.KENSA_B,
TEST.KENSA_C
HAVING (((P.処理区分)<>'3'));


KENSA_A、KENSA_B、KENSA_C というフィールド名を適宜変更してください。
・ツリー全体表示

【6438】Re:データベースから該当の複数データを抽...
お礼  sayaya  - 05/10/7(金) 12:19 -

引用なし
パスワード
   ▼小僧 さん:
以下の方法で表示できました!!!

しかし、あとひとつ問題があるのです、、、実は,
日付、通し番号、連番、処理区分のほかにも、A、B、C…と
検査実績のフィールドがあるんです。

このフィールドの値はすべてユニークなものなので、グループ化は
してはいけないですので、sqlではエラーになってしまいます。
実際のデータベースは、
日付    通し番号  連番   A    B    C    処理区分
05/10/07  a1234   001   abc   def   ghi     1
05/10/07  a1234   002   aac   ddd   ghi     2
05/10/07  b3456   003   jkl   mno   pqr     1
05/10/07  c5678   004   stu   vwx   yzz     1
05/10/07  b3456   005   jkl   mno   pqr     3
05/10/10  a1234   001   aaa   bbb   ccc     2

見たいな感じで,A、B、Cなどのフィールドもあるんですよね。
いっしょにここも抽出させたいのですが、出来るでしょうか?
・ツリー全体表示

【6437】Re:データベースから該当の複数データを抽...
回答  小僧  - 05/10/7(金) 11:10 -

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

>>抽出条件でデータ型が一致しません。

SQL を見直してみたのですが、怪しいのは下記の部分ですね。

HAVING P.処理区分<>3;

処理区分が数値型と判断させて頂いたのでこうなっていますが、もしテキスト型であれば

HAVING P.処理区分<>'3';

となります。
・ツリー全体表示

【6436】Re:データベースから該当の複数データを抽...
お礼  sayaya  - 05/10/7(金) 10:39 -

引用なし
パスワード
   ▼小僧 さん:
おはようございます。
本当にありがとうございます。
SQLビューに貼り付けてみたのですが、
>抽出条件でデータ型が一致しません。
というエラーがでてしまいました。。

私のやり方が間違ってるっぽいです泣

でも、ロジックは理解できました!
・ツリー全体表示

【6435】Re:他のテーブルを参照する
回答  クロ  - 05/10/7(金) 8:37 -

引用なし
パスワード
   おはようございます。クロです。
DLookup関数でどうですか?
VBエディタ側のヘルプにありますので参考にしてやってみてください。

もしくはクエリで売上伝票入力テーブルとお客さん名のあるテーブルを
お客さん番号で結合してそのクエリを売上伝票入力フォームのレコード
ソースしては如何ですか?
・ツリー全体表示

【6434】他のテーブルを参照する
質問  中直  - 05/10/6(木) 17:59 -

引用なし
パスワード
   はじめて質問します。
初心者です、よろしくお願いします。

例えば、売上伝票入力でお客さん番号を入力して、
顧客マスタから、そのお客さん番号に該当する名前を
取得してフォーム上に表示したいのですが。

具体的な式を教えていただければ幸いなのですが。

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

【6433】Re:Format関数とOracle9i
お礼  RUMIKO  - 05/10/6(木) 16:55 -

引用なし
パスワード
   ▼YU-TANG さん:

解決しました!
前回YU-TANGさんのレスをよく読みなおして、やはり参照設定から見直そうと考え直しました。
OLE Automationにチェックが入っていたので、これをはずして実行するとクエリは動きました。
その後、再びチェックしてみましたがクエリは動きました。
勝手な思い込みは良くないですね。いい気づきを頂きました。

>> リンク元がメモ型フィールド、リンク先がテキストとなった場合、
>> メモ型フィールドにFormat関数を(引数はひとつだけ)使用すると
>> テキスト型とリンクができるというのを発見した人がわが社に
>> います(^^)V
>
>結合のためにデータ型を合わせたいということですか。
>それなら CStr 関数の方が効率良さそうですが。

CStr関数ではリンクできなかったと記憶してます。

>> イミディエイト ウィンドウ・・・使ったことがないんです。
>> 使い方を調べてテストしてみたいと思います。
>
>[Ctrl] + [G] で起動します。

はい。次回から利用したいと考えてます。

>念のために、外せるものは一度全部外して [OK] で確定してから、再度
>付け直してみた方がよいでしょう。
>私は直接経験したことはありませんが、それで直ったケース(投稿)を
>過去に何度か見ていますので。
>
>> 私としてはやはりOracleのライブラリかなにかが関連しているのでは
>> ないかとにらんでるのですが・・・。
>
>私は Oracle は詳しくないので何とも言えませんが、MDB 依存なのか
>環境依存なのかの切り分けは、しておいた方がよいと思います。

このレスを頂く前に解決したわけですが、YU-TANGさんのおっしゃることが正しかったわけです。
ホントにありがとうございました。
言われなければ解らなかった(やらなかった)ことです。
助かりました。
・ツリー全体表示

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