MS-Access97を使用しています。

レコードに日付のデータを2、3日おきに入力したデータがあります。

フォームでこのデータを編集するときにクリックすると今日の日付の
レコードを表示するボタンを作成したいにですがどうしたらよいですか?

A 回答 (1件)

いくつか方法があると思いますが、



フィルターをかける方法を紹介しておきます。

マクロがにがてなので、VBAの例になります。
ご容赦を

こんな感じになります。テーブル上の日付のカラム名は日付でDate型として書いています。

Private Sub コマンド4_Click()
Dim datNow As Date
Dim intYear As Integer
Dim intMonth As Integer
Dim intDay As Integer

datNow = Now()
intYear = Year(datNow)
intMonth = Month(datNow)
intDay = Day(datNow)

strToday = Format(DateSerial(intYear, intMonth, intDay), "YYYY/MM/DD")
strTomorrow = Format(DateSerial(intYear, intMonth, intDay + 1), "YYYY/MM/DD")

DoCmd.ApplyFilter , "日付 >= #" & strToday & "# And 日付 < #" & strTomorrow & "#"

End Sub

もし、日付の入っているカラムに時間が含まれていないのであれば、

Private Sub コマンド4_Click()
Dim datNow As Date
Dim intYear As Integer
Dim intMonth As Integer
Dim intDay As Integer

datNow = Now()
intYear = Year(datNow)
intMonth = Month(datNow)
intDay = Day(datNow)

strToday = Format(DateSerial(intYear, intMonth, intDay), "YYYY/MM/DD")

DoCmd.ApplyFilter , "日付 = #" & strToday & "#"

End Sub

でOKです。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aと関連する良く見られている質問

QACCESSのフォーム内のレコードへのサブフォーム内のレコードの表示

いつも色々な方々に大変お世話になっております。
今回は見積書というフォームの中に、得意先一覧というサブフォームがあり、その得意先一覧にはもちろん得意先の名前があります。
現時点では、見積書フォーム内の得意先名レコードにコンボボックスを設置して選べるようにしてあります。
これを得意先一覧サブフォームの中から、見積書フォーム内の得意先レコードに表示させたい、得意先名をダブルクリックすると転記されるようするのは可能でしょうか?
宜しくお願いします。

Aベストアンサー

> 得意先名をダブルクリックすると転記されるようするのは可能でしょうか?
サブフォームの得意先名をということですよね?

Me.Parent!得意先レコード = Me!得意先名
のように、サブフォームのイベントに記述すれば、親フォームのコントロールを指定できます。

Qサブフォームのレコード操作について(ACCESS97)

Access97で下記のような入力フォームを作成しました。

【1】「ファイルを参照」ボタンをクリック
【2】ダイアログボックスが開くので、目的のファイルを選択する。
【3】サブフォーム(表形式)の1件目に、そのファイルのフルパスが格納される。

この直後に【2】の操作によって2つ目のファイルを選択すると、
やはりサブフォームの1件目にファイルのフルパスが格納されてしまい、
最初に選んだファイルのパスが上書きされてしまいます。
ここで上書きせずに、次のレコードへ移動してからファイルパスを書きこむ
ロジックを書きたいのですが、VBA初心者なのでどうしたら良いのかわかりません。

ご教授を願います。

Aベストアンサー

Docmd.GoToControl "サブフォームの名前"
Docmd.GotoRecord , , acNewRec
docmd.GotoControl "書込み先コントロールの名前"
Screen.ActiveControl = "ファイルのパス"

といった形でどうでしょうか?
もちろん下の2行は
Forms!Main.Sub!Control = xxxx
の形で1行にしても問題ないかと思います。

QMSアクセスのフォームで、レコード番号を取得するには?

こちらのカテゴリーにも質問させて下さい。


MSアクセスのフォームで、表示されている表の中でフォーカス(カーソル?)のあるレコード番号(先頭から何番目か)を取得するにはどうしたらいいですか?
ID番号はオートナンバーになっているので、途中削除されていると、先頭からの番号は狂いますよね。
例えば
No=Rcord.Index ’先頭からの通し番号
とかって、できないでしょうか?

たぶん、とっても簡単なことなんでしょうが、勉強不足でお願いします

Aベストアンサー

フォームのレコードソースとしているテーブルであれば、
 Dim CrNo As Long
 CrNo = Form.CurrentRecord
で良いと思います。

QAccess97で任意のフィールドとレコードを選択してExcel97に出力する方法

Access97でデータベースを作っています。
ある機器の部品リストを作っているのですが、テーブルに保存されている情報を
選択画面で、取り出したいフィールドとレコードをチェックボックスなどで選択し、選択したデータのみをExcel97に出力したいのです。
方法ご存じの方、ご教示願います。

Aベストアンサー

再びmaruru01です。

コマンドボタンのクリックイベントにSQLステートメントの実行とファイルのエクスポートを記述すればよいとおもいます。

SQLステートメントは、

Dim SQL As String

SQL="SELECT (フィールド) INTO (一時テーブル名) " & _
"FROM (抽出元のテーブル名) " & _
"WHERE (抽出条件)"
DoCmd.RunSQL SQL

という風で、ファイルのエクスポートは、

DoCmd.TransferSpreadsheet acExport, acSpreadsheetExcel7, (一時テーブル名), (Excelファイル名)

という風です。
詳しくは、個々のヘルプを参照して下さい。
では。

QAccess97のフォームで一人につき一画面でデータ表示させる方法を教えて下さい。

仕事で、マイクロソフトアクセス97を使ってフォームを作成しようとしています。
アクセスでクエリやテーブルは以前から使っていますが、フォームを作るのは初めてで、非常に初歩的な質問で申し訳ありませんが教えてください。
フォームのデータのもとは一つのテーブルで、氏名・社員番号・給与年月・支給給与項目ごとの金額 といった項目で構成されており、過去1年の分データを持っています。(つまりテーブルには、一人につき12行のデータがあります。そのため、社員番号だけではデータは特定できず、社員番号と給与年月で特定できます。主キーは設定していません。)

フォームでは、これらを見やすく配置し、社員番号ごとに(=一社員ごとに)1ページ、過去1年間に支給された給与年月ごとのデータを表示させたいと考えています。

<希望するイメージ>
氏名:○○太郎 社員番号:11111
給与年月 基本給   ○○手当  ××手当
200701   200,000    20,000   10,000
200702    200,000    20,000   15,000
  ------以下省略(12ヶ月分が同様に並ぶ)------

フォームウィザードで作成してみたところ、表形式だと1人1ページにならず他の対象者のデータも一画面に一緒に表示されてしまい、また単票形式だと1人につき1か月分のデータしか表示されず1人につき12ページとなってしまいました。
一体どこをどういじれば、1人につき1ページの表示に変えられるでしょうか?
宜しくお願いします。

仕事で、マイクロソフトアクセス97を使ってフォームを作成しようとしています。
アクセスでクエリやテーブルは以前から使っていますが、フォームを作るのは初めてで、非常に初歩的な質問で申し訳ありませんが教えてください。
フォームのデータのもとは一つのテーブルで、氏名・社員番号・給与年月・支給給与項目ごとの金額 といった項目で構成されており、過去1年の分データを持っています。(つまりテーブルには、一人につき12行のデータがあります。そのため、社員番号だけではデータは特定できず、社員番号...続きを読む

Aベストアンサー

テーブル設計がまずいですね

月ごとの給与をテーブルにしたいのなら
今のテーブルを
[社員テーブル](社員番号、氏名、入社年月日、生年月日、性別、・・・)
[給与](社員番号、支給年月、支給項目ごとの金額)
のように分けましょう

こうしておいて
社員テーブルから作った単票フォームに
給与テーブルを社員番号でリンクしてサブフォームとしてはめ込みます


このカテゴリの人気Q&Aランキング

おすすめ情報