Access VBA質問箱 IV

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

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


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

【10337】Re:クエリの抽出条件について
回答  Nao  - 08/4/25(金) 17:42 -

引用なし
パスワード
   双方とも自作関数でも作成しないと出来ないと思います。

>クエリの抽出条件の式の件ですが、
>アルファベットが含まれるものだけを抽出させたいのですが、
>どのように式を作ればできるようになるのでしょうか?

こちらだけですが・・・

Public Function Alpha(Parm01 As Variant) As Integer

 Dim Data01 As String
 Dim Idx1 As Long

 Alpha = False
 If Nz(Parm01, "") = "" Then Exit Function
 Data01 = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
 For Idx1 = 1 To Len(Parm01)
  If InStr(Data01, Mid(Parm01, Idx1, 1)) <> 0 Then
   Alpha = True
   Exit For
  End If
 Next Idx1

End Function

上記モジュールを登録し、クエリで

フィールド:Alpha([確認したいフィールド名])
抽出条件 :True

ただし、フィールドはテキスト型を想定しています。
・ツリー全体表示

【10336】クエリの抽出条件について
質問  かつ  - 08/4/25(金) 11:45 -

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

今、どうしても分からない事があります

クエリの抽出条件の式の件ですが、
アルファベットが含まれるものだけを抽出させたいのですが、
どのように式を作ればできるようになるのでしょうか?

もうひとつ・・・
数字4桁以外のものを抽出するようにするにはどうしたらいいのでしょうか?

教えていただけないでしょうか?
よろしくお願いします
・ツリー全体表示

【10335】Re:こういう日付を抽出するには・・。
回答  hatena  - 08/4/25(金) 0:44 -

引用なし
パスワード
   >採用日2008/4/1で抽出した場合、上の例で行くと、0001 0002とも抽出してしまうのですが、実質的には、0001の人は、年度切り替えのため契約を分けているだけで、実質上の契約は、2007/11/1〜2008/6/30となっています。で、0002の人は、2008/4/1〜2008/6/30です。この例で行くと、採用日2008/4/1で 0002の人のみを抽出したいのです。

WHERE 採用日=#2008/4/1# AND 退職日<>#2008/3/31#

でいいのでは。
・ツリー全体表示

【10334】こういう日付を抽出するには・・。
質問  あおぎん  - 08/4/23(水) 15:55 -

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

パート社員の契約歴を管理しているのですが、会社の諸事情により、雇用契約を年度ごとかつ細切れに結んでいる状態です。

現在の管理方法は、

T_パート契約履歴に、契約履歴を入力していき、必要に応じて集計クエリで社員ごとの横並びの一覧などにしています。

社員コード 採用 採用日 退職 退職日
0001  1901 2007/4/1 1901 2007/9/30
0001  1902 2007/11/1 1902 2008/3/31
0001  2001 2008/4/1  2001 2008/6/30
0002  1901 2007/5/1 1901 2007/8/31 
0002  1902 2007/12/1 1902 2008/2/29
0002  2001 2008/4/1  2001 2008/6/30
※「採用」「退職」の「1901」は、19年度の1回目の契約という意味で入力。
※最大で年度に4回契約することあり。

で、採用日により社員を抽出する場合があるのですが、
採用日2008/4/1で抽出した場合、上の例で行くと、0001 0002とも抽出してしまうのですが、実質的には、0001の人は、年度切り替えのため契約を分けているだけで、実質上の契約は、2007/11/1〜2008/6/30となっています。で、0002の人は、2008/4/1〜2008/6/30です。この例で行くと、採用日2008/4/1で 0002の人のみを抽出したいのです。

上記のようなデータから、
社員コード 直近採用日 直近退職日
0001   2007/11/1  2008/6/30
0002   2008/4/1  2008/6/30

というようなデータが取得できないものかと頭を悩ませているのですが、なかなか思いつきません。採用日の最大を取得して、その前日と前の行の退職日が一致すれば、その前の採用日を取得する・・みたいな感じでどうにかできないかと考えているのですが、さらにその前の退職日とつながっている場合もあったりで、混乱しています。

現在は、継続採用者という形でチェックを入れることにより、該当の抽出を行っていますが、チェックし忘れもあるので、入力している履歴を使って抽出できればと思っています。
何かよい方法がありますでしょうか?

または、履歴の管理方法を変更したほうがよければ、そのあたりのアドバイスでもいいのでよろしくお願いします。

(Win Accessとも2000)
・ツリー全体表示

【10333】Re:エクスポート
お礼  りった  - 08/4/16(水) 12:22 -

引用なし
パスワード
   回答有難う御座います。
試してから返信しようと思ったのですが、時間がとれずにまだ試せていません。
あまり遅くなってもなんなので、お礼の返事だけさせて頂きます。
・ツリー全体表示

【10332】ピボットウィザードについて
質問  tatsu  - 08/4/16(水) 10:53 -

引用なし
パスワード
   ピボットウィザードを使って、表を作成したいのですが、なぜか、うまくいきません。

フィールドを選択して、”次へ”をクリックすると、

『visual BasicプロシージャのCreate Object関数のクラス引数が正しく指定されていません』

と表示されてしまいます。

いまいち意味が分からなくて、投稿しました。

何が原因で、次へ進めないのでしょうか?

今までは、普通にできていたのですが・・・

分かるかた教えていただけませんか?

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

【10331】Re:サブレポートのコントロールについて
発言  VBWASURETA  - 08/4/14(月) 10:33 -

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

なかなかレスが付かないみたいなので
一応発言だけしますが。

サブレポートを使わないとダメなのでしょうか?
帳票タイプでされているのでしたら、不要な気がします。

ついでに過去にも同じ質問があります。
//www.vbalab.net/vbaqa/c-board.cgi?cmd=one;no=326;id=access

一度ご参考にされてみては。
・ツリー全体表示

【10330】Re:合計が合わないのですが
発言  VBWASURETA  - 08/4/14(月) 9:54 -

引用なし
パスワード
   訂正と追記です。

桁は逆みたいですね^^;
ただ、クエリーで見てみるというのも手ではあります。

後、上記のソースは見てわかりますが、レコード追加しているだけですよね?
合計の計算式部分とデータサンプル等を書いた方が良いですよ?
それがないと何が問題になってるかわかりませんから。
・ツリー全体表示

【10329】Re:合計が合わないのですが
発言  VBWASURETA  - 08/4/14(月) 9:11 -

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

まず、テーブルの型を書いた方が良いですよ?
その問題の場合もありますから。

次に1桁がない感じですが、もしかして桁表示
できていないだけとかではないですよね?

その問題ではないかまずクエリーで見てみる事を
お勧めします。
・ツリー全体表示

【10328】Re:エクスポート
回答  Gin_II  - 08/4/11(金) 12:29 -

引用なし
パスワード
   >たいした手間ではありませんが、毎日なのでマクロ化する方法を
>ご教示頂けないでしょうか?

Accessで「マクロ」というのは、VBAではありません。
アクションを選択し、引数を設定するだけです。

アクションは、「ワークシート変換」というものがありますので、
そちらを試してみてください。
・ツリー全体表示

【10327】合計が合わないのですが
質問  timtim  - 08/4/11(金) 12:03 -

引用なし
パスワード
   送信できたかどうか?、再送信です。

リース契約COPY_判断:
     If W開始リース < MST!開始日付 Then
       GoTo リース契約COPY_LOOP
     End If
     
     TRN.INDEX = "主キー"
     TRN.Seek "=", W得意先CD, W支店CD, W日付, MST!管理No.
     If TRN.NoMatch Then
       TRN.AddNew
       TRN!得意先コード = MST!得意先コード
       TRN!支店コード = MST!支店コード
       TRN!売上日付 = W日付
       TRN!現場コード = MST!現場コード
       TRN!枝コード = MST!枝コード
       TRN!現場名 = MST!現場名
       TRN!品名コード = MST!品名コード
       TRN!品名 = MST!品名
      'TRN!管理No.:オートナンバー
       TRN!登録番号 = MST!登録番号
       TRN!運転手 = MST!運転手
       TRN!数量 = MST!数量
       TRN!単位コード = MST!単位コード
       TRN!単位 = MST!単位
       TRN!単価 = MST!単価
       TRN!金額 = MST!金額
       TRN!開始リース期間 = W開始リース
       TRN!終了リース期間 = W終了リース
       TRN!支払条件 = MST!支払条件
       TRN!支払条件1 = MST!支払条件1
       If MST!リース回数 <> 0 Then
        If DatePart("d", MST!開始日付) = 1 Then
          TRN!現リース回数 = CLng(DateDiff("M", CDate(Format(MST!開始日付, "YYYY/MM")), CDate(Format(W日付, "YYYY/MM")))) + 1
        Else
          TRN!現リース回数 = CLng(DateDiff("M", CDate(Format(MST!開始日付, "YYYY/MM")), CDate(Format(W日付, "YYYY/MM"))))
        End If
        TRN!備考 = CStr(TRN!現リース回数) & "/" & MST!リース回数
       End If
       TRN.UPDATE
     End If

※以前95〜2000の移行でお尋ねした者ですが、上記のプログラムの単価に-の値引きの単価を入力したら、合計金額が間違って表示されます。どのように訂正すればよろしいでしょうか?(合計997.500円が合計1.997.500円に表示されます)
・ツリー全体表示

【10326】Re:コンボボックスの上書きモード
発言  VBWASURETA  - 08/4/11(金) 9:21 -

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

コンボボックスのイベントでするなら、クリックイベントで
前回選択位置と比較して変わっていれば処理を実行する
ようなのでダメなのでしょうか?
・ツリー全体表示

【10325】エクスポート
質問  りった  - 08/4/10(木) 14:14 -

引用なし
パスワード
   はじめまして。宜しくお願いします。

csvファイル(buglist.csv)にリンクしたテーブル(buglist)を
Excelファイル(buglist.xls)にエクスポートする作業をほぼ毎日やっています。

たいした手間ではありませんが、毎日なのでマクロ化する方法を
ご教示頂けないでしょうか?

・mdb,csv,xlsファイルは全て同一フォルダ内です。
・強制上書き希望です。
・CSVファイルをそのままExcelで開くと、「折り返して全体を表示する」の
 計算に数十分かかるため、AccessからExportして「折り返して全体を表示しない」
 ようにしています。
・Excel VBAはそれなりに解かりますが、Access VBAは「マクロの記録」が
 無いのでやったことが無いです。
 マクロの記録が無くてどうやってコーディングするのかわかりません。
 テーブル名(buglist)の後ドットを打っても何にも出てきませんし...
・ツリー全体表示

【10324】Re:unionクエリーで使うテーブルを任意で...
お礼  えなりん  - 08/4/7(月) 12:33 -

引用なし
パスワード
   MJM さん こんにちは。
お返事ありがとうございます。

>そもそも購入月ごとにテーブルを分ける必要性があるのでしょうか?
>テーブル内に、購入日ないし購入月というフィールドを設けることで、
>1つのテーブルで管理した方が、データの操作も容易になるかと。

購入データは、社内ソフトからデータを取得するんですが、
そのタイミングによっては、
購入データが重複する可能性あると思ったんです。
そこで、購入月でテーブルを分けることで、
同テーブル名(テーブル名=購入月)があったときに、
古いテーブルをそのまま削除して
新しいテーブルを保存するのが楽かなと。

すべての購入データは、注文番号で管理しているんですが、
赤伝票があったりして注文番号が複数存在するので、
「インデックス(重複なし)」にすることはできないですし。
・ツリー全体表示

【10323】Re:unionクエリーで使うテーブルを任意で...
回答  MJM  - 08/4/4(金) 11:44 -

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

クエリーの作成は、
CreateQueryDef メソッド
にて作成することはできますが、

そもそも購入月ごとにテーブルを分ける必要性があるのでしょうか?
テーブル内に、購入日ないし購入月というフィールドを設けることで、
1つのテーブルで管理した方が、データの操作も容易になるかと。
・ツリー全体表示

【10322】unionクエリーで使うテーブルを任意で指定
質問  えなりん  - 08/4/3(木) 23:32 -

引用なし
パスワード
   みなさまのお知恵をお貸しください。

購入データの集計をAccess2000でしたいと思います。
ちょっと説明が長いですが、おつきあいください。

まずはテーブルの説明から。。。

1テーブル=1か月間の購入データ。テーブル名はその年月。
(例えば2008年4月1日〜30日の購入データならテーブル名は"200804")
200801、200802、200803・・・というようにどんどんテーブルが増えていく予定。
テーブルのデザインは全部統一。

そんなテーブルたちを基に以下のようなunionクエリーを作成しました。

select *
from 200801

union all select *
from 200802
 (以下続く)

そこで質問なんですが、unionクエリーの記述を自動化することはできるのでしょうか。。
たとえば、テーブル名一覧リストを作り、チェックを入れたテーブル名を使ってunionクエリーを作るとか。
私以上の初心者が管理をするので、直接unionクエリーの記述をしないで済む方法を探しています。
・ツリー全体表示

【10321】Re:別フォームへのデータ引用
発言  Gin_II  - 08/4/2(水) 18:23 -

引用なし
パスワード
   >Aフォームはデータシートです。
>Aフォームに表示されたデータ(複数件の場合有)を
>別フォームBにデータを引用させたいのです。
>Bフォームもデータシートになります。

引用とは?

よく理解していない状況で考え付く方法としては、

○フォームを2つ開く
○単票形式のフォームを作成して、Aフォーム・Bフォームを
 サブフォームとしてやる

ぐらいでしょうか。
・ツリー全体表示

【10320】別フォームへのデータ引用
質問  あみ  - 08/4/2(水) 17:27 -

引用なし
パスワード
   初心者です。

Aフォームはデータシートです。
Aフォームに表示されたデータ(複数件の場合有)を
別フォームBにデータを引用させたいのです。
Bフォームもデータシートになります。

ご教授お願い致します。
・ツリー全体表示

【10319】コンボボックスの上書きモード
質問  あくせす  - 08/4/1(火) 21:49 -

引用なし
パスワード
   こんばんわ

コンボボックスないのデータをクリックすると
上書きモードにしたいのですがよい方法はありますでしょうか。

コンボボックスではテーブルを参照し、テーブル内容を表示するように
しています。

テキストボックスでは更新後処理に以下の値をいれてうまくいきました。

Dim ctl As Control
Set ctl = Screen.ActiveControl
Select Case ctl.ControlType
Case acTextBox, acComboBox
ctl.SelStart = 0
ctl.SelLength = Nz(Len(ctl))
End Select

よい方法はありますでしょうか。
・ツリー全体表示

【10318】Re:シートの削除について
お礼  NEMO  - 08/3/31(月) 12:05 -

引用なし
パスワード
   ▼Gin_II さん:
いつもありがとうございます。
うまく処理することができました。
・ツリー全体表示

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