Access VBA質問箱 IV

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

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


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

【3289】Accessをwebに載せたいのですが・・・
質問  ひろこ  - 04/8/20(金) 15:29 -

引用なし
パスワード
   Accessで作成したフォームなどをwebで表示したいのですが
ページの作成方法がわかりません。モジュールでファイルを
htmlにエクスポートしようとしたのですがいまいちうまくいきません。
何かよい解決方法をお願いいたします。
・ツリー全体表示

【3288】クロス集計クエリのようなフォームを作り...
質問  パンダまん  - 04/8/20(金) 14:34 -

引用なし
パスワード
   はじめまして。いつも参考にさせていただいています。

フォームで、クロス集計クエリのようなものを作りたいと思っています。

名前|日付|売上|売上開始日|現在週|

上記のようなクエリAがあり、日々のデータを蓄積しています。
現在週は売上開始日から日付まで何週目にあたるかを計算しています。

あああ | 2004/1/1 | 10000 | 2003/10/15 | 4
あああ | 2004/1/2 | 6000 | 2003/10/15 | 4
あああ | 2004/1/3 | 7500 | 2003/10/15 | 4
あああ | 2004/1/4 | 12000 | 2003/10/15 | 5
あああ | 2004/1/5 | 6000 | 2003/10/15 | 5

と、上記のような感じです。
集計してみるにはクロス集計クエリが最適だと思うのですが、

名前  | 1週目 | 2週目 | 3週目 |
あああ |  60000 |  51000 |  68000 |
いいい |     |     |  23000 |
ううう |     |  51000 |  52000 |
えええ |     |  42000 |  40000 |
おおお | 120000 |  98000 |  88000 |
かかか |  60000 |  51000 |  68000 |
 
上記のようにフォームで週ごとに表示させたいのですが、なおかつボタン1つで

名前  | 2003/1/1 | 2003/1/2 | 2003/2/3 |
あああ |  10000 |   7500 |  12000 |
いいい |     |     |   4000 |
ううう |      |  25000 |  13000 |
えええ |     |  30000 |  30000 |
おおお |  30000 |  24000 |  18000 |
かかか |  40000 |  18000 |   8000 |
   
というよな、日ごとの集計を表示させたいと思います。
上記のようなフォームをコントロールなどを使って作成することはできるのでしょうか?
また、もっとよい方法がございましたらその方法などヒントでも結構ですのでぜひ教えてください。

OSはXP Access2000です。
     
・ツリー全体表示

【3287】Re:エクセルインポートの方法
発言  こもれび  - 04/8/20(金) 13:48 -

引用なし
パスワード
   追伸です

データ行の最後につけることが難しいようでしたら、データ行したの文章の
先頭行のデータのある最後の列にあたるセルに名前を付けるというやり方も
考えられます。
お使いのExcelのブックが一つの書式(テンプレート)とされているのでしたら
この方法のほうが、毎度セルの名前付けを行わなくても済むかなと思います。
・ツリー全体表示

【3286】レポートに画像を出力する方法
質問  morik  - 04/8/20(金) 13:34 -

引用なし
パスワード
   いつもお世話になっております。

レポート機能についてご質問があるのですが。

現在CSVデータを元にレポートに出力しているのですが、
CSVデータに画像名(bmp,gif,jpg,tif)が入ってきた場合にレポートにその画像を出力することは可能でしょうか?

どなたか対処法をご存知の方よろしくお願い致します。
・ツリー全体表示

【3285】Re:エクセルインポートの方法
発言  こもれび  - 04/8/20(金) 12:24 -

引用なし
パスワード
   こもれびです こんにちは

データ行の一番下、データの有る列の最後のセル1個に手動で名前を付ける
(名前の定義)ことは許可されるものでしょうか?
例)「Lstcell」という名前
これがあれば全部自動化できます。

逆に、これ若しくはこれに代わる最後の行が判定できる目印がないと
データ行の下に文章がある限り、難しいのではないかなと思います。
・ツリー全体表示

【3284】メインフォームとサブフォームの関連につ...
回答  KKK  - 04/8/19(木) 23:18 -

引用なし
パスワード
   こもれびさん
初めまして、レスありがとうございます。
私の方でもどう説明したらよいのかうまく言い方が見つからないのですが、、

>その1.
>レコードの移動はボタンなどのオブジェクトの操作によるものでしょうか
>(VBA)、それともフォームに付いている移動ボタンによるものでしょうか。
↑フォームに付いている移動ボタンによるものです。

>その2.
>メインフォームの「顧客情報」はサブフォームの「履歴」を参照しながら
>データが入力され、「履歴」の方も新たなデータが入力されるという使い方
>と考えればよいのでしょうか?
↑メインフォームには既に顧客情報が入力されており、(追加することもありますが)
その下というか、サブフォームに顧客と電話で応対した履歴を入力していきたく、
さらに前回入力したデータも振り返って見ることができたらと思っています。

作った流れは・・・
1) tbl_顧客情報:(氏名/ID(リレーションを組むため)/住所/TEL等・・・)
2) tbl_対応履歴:(ID(リレーションを組むため)/対応履歴/備考)
3) q_対応履歴:1)、2)をIDでクエリを組んで連動するようにしました。
メインフォームは顧客情報のテーブルで作成し、
サブフォームは3)のクエリを元にして作成し、メインフォームに埋め込みました。

サブフォームに履歴を入力したところ、2)の対応履歴のテーブルにデータは
蓄積されるのですが、過去に入力したものが、フォーム上で見ることができません。
※プロパティのデータ入力用は”いいえ”にしてあります。
ひょっとしたらクエリの組み方が間違っているのかもしれません。。
またVBAは使用しておりません。
ひとつ疑問なのですが、サブフォームに単票形式は使用できますよね?

キーになるデータ(ここではID)の結びつけをどこでやればいいのか
(クエリでやるのかリレーションシップの画面でやるのかフォームのプロパティ
でやるのか)がはっきり自分でもわかっていません。。初心者ですみません。。
いろいろと質問しまして恐縮です・・・
ぜひお力をお貸しいただけたらと思います。どうぞよろしくお願い致します。
・ツリー全体表示

【3283】Re:文字の検索
質問  べる  - 04/8/19(木) 19:47 -

引用なし
パスワード
   ▼こもれび さん:

こんにちは、
混合文字の節はありがとうございました。
また、問題が出てしまいました。
ご教授の程、よろしくお願いいたします。

>「フィールド」はフォームに設けられたテキストボックスを指されているのでしょうか?

その通りです。
単語の使い方が悪くて申し訳ありません。

>また、フィールドがテキストボックスだと仮定してユーザーさんが入力を完了して
>その次の操作、例えばコマンドボタンをクリックしたときやフォーカスが次の
>オブジェクトに移動したときにエラーメッセージを出力すればよいのでしょうか?
>
>エラーメッセージを表示するタイミングはもうひとつあり、文字を入力している
>途中ということも考えられるのですが今回の出力方法はどちらなのかを教えてください。

他の項目も同時にチェックするようになっているため、できましたら、
コマンドボタンをクリックした時にメッセージを出したいです。


>
>私がちょっと考えたのは「フィールド」という言葉はテーブルの列名を指すものなので
>テーブル直入力でエラーメッセージを出力するのかな??と考えてしまいました。
>テーブル直入力ではないですよね・・・(^^; (だったりして)

申し訳ありません、フォームのテキストボックスのことでした。。。


>ところで「禁則文字」どれくらいあるのですか?

40〜50程となります。

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

【3282】Re:文字の検索
発言  こもれび  - 04/8/19(木) 19:06 -

引用なし
パスワード
   こんにちは

「フィールド」はフォームに設けられたテキストボックスを指されているのでしょうか?
また、フィールドがテキストボックスだと仮定してユーザーさんが入力を完了して
その次の操作、例えばコマンドボタンをクリックしたときやフォーカスが次の
オブジェクトに移動したときにエラーメッセージを出力すればよいのでしょうか?

エラーメッセージを表示するタイミングはもうひとつあり、文字を入力している
途中ということも考えられるのですが今回の出力方法はどちらなのかを教えてください。

私がちょっと考えたのは「フィールド」という言葉はテーブルの列名を指すものなので
テーブル直入力でエラーメッセージを出力するのかな??と考えてしまいました。
テーブル直入力ではないですよね・・・(^^; (だったりして)

>可能なのでしょうか。
可能です。
あとの問題は、上に書きましたメッセージを出力するタイミングです。
アプリケーションを使用するユーザーさんの立場で考えますと、
テキストボックスに文字を入れている途中で何らかのメッセージが
出力されると結構びっくりされます。
私が考えるところは、ひとつの入力が終わった瞬間(After update)が
よいのではないかなというところです。

ところで「禁則文字」どれくらいあるのですか?
・ツリー全体表示

【3281】Re:メインフォームとサブフォームの関連に...
発言  こもれび  - 04/8/19(木) 18:48 -

引用なし
パスワード
   KKK さん はじめまして

本文を読ませていただきましたが、今ひとつわからない点がありますので
教えてください。
的確に回答できるかどうか保証はいたしかねますのでご了承願います。

>それぞれの(サブの)履歴を見れるようにまた新規入力できるようにしたい。
>
><現状>
>サブフォームは単票形式で、タブコントロールの上に貼り付けしてあり、
>それぞれの元のレコード(メイン・サブ共に)には顧客IDがあり、
>リレーションシップでつなげています。
>データを入力したとこ
>ろ、サブフォームに入力したデータがレコードを移動する
>と
>サブフォーム上から消えてしまい、もとのテーブルを見るとデータは蓄積されて
>います。

その1.
レコードの移動はボタンなどのオブジェクトの操作によるものでしょうか
(VBA)、それともフォームに付いている移動ボタンによるものでしょうか。

その2.
メインフォームの「顧客情報」はサブフォームの「履歴」を参照しながら
データが入力され、「履歴」の方も新たなデータが入力されるという使い方
と考えればよいのでしょうか?

>入力したデータ(履歴)を前後レコードを移動しながら見れるようにするには
>どうしたらよいでしょうか?

理解力が乏しく、「データが消える」プロセスがどうも掴めません。
データの更新でリクエリーが必要なのかな・・・と考えましたが、
VBAを使っていないようにも読めてしまったりしています。
恐れ入りますが、ユーザーの操作手順(フロー)など教えていただけないでしょうか。
・ツリー全体表示

【3279】Re:文字の形態別に全半角の変換を変える
お礼  べる  - 04/8/19(木) 13:39 -

引用なし
パスワード
   ▼こもれび さん:

>ひょっとして・・・
>元々「Module1」という標準モジュールの名前をKonzaiConvに
>変更されていませんか?

まさにご指摘いただいたことをやっていました。。。
Module名を変更したら、正しい結果が返ってきました。

今回、初めて質問させて頂きましたが、当初は期待していませんでした。
ところが、こんなにも親身になって素晴らしい回答をいただけるサイトで
あった事に驚き、感動しました。

こもれび様、本当にありがとうございました。
・ツリー全体表示

【3278】Re:コンボボックスのリスト
お礼  saikoro  - 04/8/19(木) 13:12 -

引用なし
パスワード
   phoo様、こもれび様、本当にありがとうございます。

お二人が提示して下さったソースを使った結果無事解決できました。

単純?な事かもしれませんが、自分としては感動しました^^

これから勉強していきたいと思います。
誠にありがとうございました。m(_ _)m
・ツリー全体表示

【3277】文字の検索
質問  べる  - 04/8/19(木) 12:23 -

引用なし
パスワード
   初心者の為、簡単な質問で申し訳ございません。
まず、禁則文字のマスターテーブルを作成して、
あるフィールドに入力された文字に対して、
その文字マスターの登録と一字でも合致したら、
エラーメッセージを表示するようなものを作成したいのですが
可能なのでしょうか。
どなたか教えていただけますでしょうか。
よろしくお願いいたします。
・ツリー全体表示

【3276】Re:文字の形態別に全半角の変換を変える
発言  こもれび  - 04/8/19(木) 12:22 -

引用なし
パスワード
   こもれびです

ひょっとして・・・
元々「Module1」という標準モジュールの名前をKonzaiConvに
変更されていませんか?

私のほうで(普段は行わないのですが)試しにModule1という名前を
KonzaiConvに変えたら同じエラーメッセージが出ました。

もし、変更されていましたら元々の名前のModule1に変更するか、
「BellModule」とか適当な名前に変更してみてください。
それでうまく動けば、関数名とモジュール名は同じにしてはいけない
ことがわかります。
(私も知らなかったです。)
・ツリー全体表示

【3275】Re:文字の形態別に全半角の変換を変える
質問  べる  - 04/8/19(木) 11:55 -

引用なし
パスワード
   ▼こもれび さん:

色々と原因を追求して頂きまして、ありがとうございます。
変数の部分は、
TxtAns  → Client_name1
txtstr  → Client_name1
とした以外は、標準モジュールなどは変更していません。
また、一行の幅を短くしたモジュールに変えてみましたが、
こちらも変化はなく、同様のコンパイルエラーが出てしまいました。
初心者の私では考える術もありません。
恐れ入りますが、他に考えられる原因などはないでしょうか。
よろしくお願いいたします。
・ツリー全体表示

【3274】Re:コンボボックスのリスト
発言  こもれび  - 04/8/19(木) 11:49 -

引用なし
パスワード
   >  SQL = "SELECT 食べ物.名称 FROM 食べ物 WHERE (((食べ物.種類)='" & Me!cmb_種類 & "'));"

このあとは、

  Me!cmb_名称.RowSource = SQL
  Me!cmb_名称.Requery

で済みますけど・・・ (^^;;

>  rs.Close: Set rs = Nothing
>  CN.Close: Set CN = Nothing

レコードセットは使わないので、rsは不要になります。
・ツリー全体表示

【3273】Re:コンボボックスのリスト
発言  saikoro  - 04/8/19(木) 11:30 -

引用なし
パスワード
   phoo様、ありがとうございます。

今現在、確認できる環境がないので、夜にでもまた正式な礼言いたいと思います。
なんか、すごそうなプログラムですが、ありがとうございます〜。
・ツリー全体表示

【3272】Re:コンボボックスのリスト
回答  phoo  - 04/8/19(木) 11:16 -

引用なし
パスワード
   >これを、テキストボックスに、野菜か、果物を入れるようにして、
>コンボボックスリストに、野菜がはいったら、クエリ1を表示させ、
>コンボボックスリストに、果物がはいったら、クエリ2を表示させようと思うのです。
>(コンボボックスは同じ所です。)
>
>以上、よろしくおねがいいたします。

コンボボックスに直接指定する方法はわかりませんでしたので、
VBAでの対象方法です。
--------------------------------------------------------------------------
Private Sub cmb_種類_Click()

  Dim CN As New ADODB.Connection
  Dim rs As New ADODB.Recordset
  Dim SQL As String
  Dim WK As String
  
  Set CN = CurrentProject.Connection
  
  If IsNull(Me!cmb_種類) Or Me!cmb_種類 = vbNullString Then
    Exit Sub
  End If
  
  SQL = "SELECT 食べ物.名称 FROM 食べ物 WHERE (((食べ物.種類)='" & Me!cmb_種類 & "'));"
  rs.Open SQL, CN, adOpenKeyset, adLockReadOnly
  
  If rs.EOF Then
    Exit Sub
  End If
  
  WK = ""
  rs.MoveFirst
  Do While Not rs.EOF
    WK = WK & rs.Fields(0)
    rs.MoveNext
    If Not rs.EOF Then
      WK = WK & ","
    End If
  Loop
  Me!cmb_名称.RowSource = WK
  Me.Repaint
  
  rs.Close: Set rs = Nothing
  CN.Close: Set CN = Nothing

End Sub
--------------------------------------------------------------------------
野菜か果物を選択するコンボボックスで、
クリック時のイベント プロシージャを
指定して上記のソースを記述します。
あとは、選択した野菜か果物の種類が自動で選択されます。
・ツリー全体表示

【3271】Re:コンボボックスのリスト
質問  saikoro  - 04/8/19(木) 10:21 -

引用なし
パスワード
   わかりにくかったと思うので、

イメージとしてこんな感じになっています。

テーブル名:食べ物

No   種類    名称
--------------------------
1    野菜    じゃがいも
2    野菜    ぴーまん
3    野菜    きゅうり
4    野菜    とまと
5    野菜    きゃべつ
6    果物    すいか
7    果物    りんご
8    果物    なし 
9    果物     ぶどう
10   果物    グレープフルーツ

こんな感じのテーブルです。

それでクエリ1に
SELECT [名称] from 食べ物 WHERE [種類]='野菜'

クエリ2に
SELECT [名称] from 食べ物 WHERE [種類]='果物'

と、しています。

これを、テキストボックスに、野菜か、果物を入れるようにして、
コンボボックスリストに、野菜がはいったら、クエリ1を表示させ、
コンボボックスリストに、果物がはいったら、クエリ2を表示させようと思うのです。
(コンボボックスは同じ所です。)

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

【3270】Re:エクセルインポートの方法
発言  DONTA  - 04/8/19(木) 9:42 -

引用なし
パスワード
   こもれびさん、度々ありがとうございます。
DONTAです。

言われる通り、50行の場合は55行目からの文章、100行の場合だと105行目からの文章というイメージです。

毎回、Excel側で定義を設定するのではなく、自動化したいのですが・・・。
・ツリー全体表示

【3269】Re:コンボボックスのリスト
質問  saikoro  - 04/8/19(木) 9:18 -

引用なし
パスワード
   こもれび様、レスありがとうございます。

>イメージは次のような感じですか?
>
>次のA、Bの内から一つを選び入力する
>A:野菜
>B:果物
>
>Aが入力されたら次をコンボボックスにリストアップ
> じゃがいも
> ぴーまん
> きゅうり
> とまと
> きゃべつ
>Bが入力されたら次をコンボボックスにリストアップ
> すいか
> グレープフルーツ
> りんご
> なし
> ぶどう

はい。ここまでして頂きありがとうございます。
全て同じテーブル内で、野菜と、果物が同じ行。
コンボボックスにリストアップされるものも全て同じ行に入ります。
なので、自分としては、
クエリ1に野菜を条件にして
 じゃがいも
 ぴーまん
 きゅうり
 とまと
 きゃべつ
クエリ2に果物を条件にして
 すいか
 グレープフルーツ
 りんご
 なし
 ぶどう
を設定しています。下手な説明で申し訳ないです。

>
>saikoroさんの本文からですと、AとBが同じレコードセット
>若しくはテーブルなのか違うレコードセット若しくはテーブルなのか
>そのあたりが読めないです。

基本的なことで恐縮ですが、同じレコードセットとは、同じ列に入っているって
ことでよろしいでしょうか?上記Aの野菜とBの果物は、種類という行で同じ所に入ってます。答えになってなかったら申し訳ありません。勉強不足が否めないです。。。

>いずれにしても選ばれたデータを元に「Select case文」で分岐して
>それぞれ用のレコードセットをSQLでつくり、コンボボックスの
>ソースとしてしまわれてはいかがでしょうか。

やはり、こういった条件を書くことになるとおもいますよね。。
コンボボックスのソースとしてしまう場合は、どこに書けばよろしいのでしょうか?
この質問は、自分がアクセスの勉強不足なので、恐縮ですが。。。

他としては、自分では、クエリ3という物を作り、IIF関数を用いて、
パラメータを用いて、クエリ1とクエリ2を表示させるという事でも実現可能でした。

長文で申し訳ないのですが、コンボボックスのソースとしてしまう場合は
どこに書けばよろしいのでしょうか?
・ツリー全体表示

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