アプリ版:「スタンプのみでお礼する」機能のリリースについて

引数を日付型と整数型にして
テーブルのデータを取り出すモジュールを作成したいと思っています

日付別、時間別のアクセス数データベースがあり
例えば日付型引数(02/06/01)、整数型引数(1)として
関数を実行すると02/06/01の1時のデータ(20)を
返すものを作りたいのです

日付    0時  1時  2時 …(23時まで)
――――――――――――――――
02/06/01  10  20  30 …
02/06/02  20  20  40 …

――――――――――――――――

出来たらそのモジュールの例をあげてもらえると
非常に助かります
宜しくお願いしますm(_ _)m

A 回答 (4件)

元データは何に入っているのでしょうか?


Excel?Access?テキストファイル?他のデータベース?
データベースだったらバージョンは?各フィールドのデータ型は?

モジュールって?Accessの標準モジュールのこと?他に開発している何かのモジュール?

答えようにも情報が少なすぎです。もっと詳細な情報を記述しないと誰も答えられませんよ。


#ちなみに、時間別になっていない生のアクセスログは利用可能ですか?

この回答への補足

taka_tetsuさん
回答ありがとうございます

>もっと詳細な情報を記述しないと誰も答えられませんよ。
その通りですね、スイマセン

ACCESS2000のデータベースです
モジュールはAccessの標準モジュールのことです
選択クエリでフィールド名のところに
アクセス数:=関数名([日付],[時間])
と入力して
モジュールで日付(日付型)と時間(整数型)から
アクセス数を求めたいのです
DLookup関数を使えば出来ると思っていたのですが
出来なくて困っていました(下のようにしていました)

アクセス数:=DLookup([時間] & "時","テーブル1","日付=" & [日付])

補足日時:2002/06/29 17:23
    • good
    • 0

>DLookup関数を使えば出来ると思っていたのですが


>出来なくて困っていました(下のようにしていました)
>
>アクセス数:=DLookup([時間] & "時","テーブル1","日付=" & [日付])


フィールド名の先頭が数字であるためです。
[]で生成したフィールド名を囲む必要があります。

アクセス数:=DLookup("[" & [時間] & "時]","テーブル1","日付=" & [日付])

これでOKなはずです。

この回答への補足

taka_tetsuさん
回答ありがとうございます

>アクセス数:=DLookup("[" & [時間] & "時]","テーブル1","日付=" & [日付])
こちらで試してみたのですがうまくいきませんでした
なぜかNullを返してしまいます
アクセス数:=DLookup("[" & [時間] & "時]","テーブル1")にしたところ
設定したフィールドから適当な数値を取得していたので
条件の部分がおかしいのかなとおもっているのですが…
ちなみにそのフィールドは日付型データ(yy/mm/dd)で入っています

補足日時:2002/07/01 11:20
    • good
    • 0

テストデータとして下記を作りました。

テーブル名=小口現金1
番号日付名前使途 金額
1H14.3.3中山 光雄電話料\2,000
2H14.3.3大田 昌雄文具費\3,000
3H14.3.4小暮 文他印紙代\250
4H14.3.2大宮 訓哉文具費\300
5H14.3.3小中 公次印紙代\2,100
6H14.3.1国元 間  交通費\3,200
7H14.3.2山川 仁  コピー代\3,400
というテストデータ(アクセスのテーブル)を作り、アクセスのモジュールに下記を入力しました。
Sub test01()
Dim db As DAO.Database
Dim rs As DAO.Recordset
Dim hiduke As String
Dim name As String
Dim mysql As String
hiduke = InputBox("日付=")
name = InputBox("名前=")
Set db = CurrentDb()
mysql = "select * from 小口現金1 where 日付='" & hiduke & "' and 名前='" & name & "';"
' MsgBox mysql
Set rs = db.OpenRecordset(mysql, dbOpenDynaset)
Do Until rs.EOF
MsgBox rs!日付 & " " & rs!名前 & " " & rs!使途
rs.MoveNext
Loop
rs.Close
Set rs = Nothing
End Sub
本件質問に当てはめると、どこをどう変えれば良いかは判ると思います。ほとんど同じタイプです。
ただし上記InputboxとMsgbox rs!日付....は、通常はフォームやサブフォームに表示するのでしょうが、必要知識を最小限にするため、上記の様にしました。ここはご存知なければ調べてください。会社の他の方に使ってもらうには不満でしょうが済みません。
    • good
    • 0
この回答へのお礼

imogasiさん
回答ありがとうございます

とりあえずモジュールのほうを変更して
試してみたいと思います
分からないところが出てきたら補足したいと思いますので
その時は宜しくお願いします

お礼日時:2002/07/01 11:25

>>アクセス数:=DLookup("[" & [時間] & "時]","テーブル1","日付=" & [日付])


>こちらで試してみたのですがうまくいきませんでした
>なぜかNullを返してしまいます

日付はどのように引数で指定していますか?
Accessの標準の日付文字列の形式は#で囲む必要があります。
#2002/02/01#のような感じで指定する必要があります。

この回答への補足

taka_tetsuさん
回答ありがとうございます

>日付はどのように引数で指定していますか?
引数の日付は"yy/mm/dd"でフォーマットして
これをDatevalueで日付型にしたものです
(もともとのデータが 02/06/01 12:34:56 という形なので
日付部分を文字列で取り出しそれを日付型に変換していました)

補足日時:2002/07/01 11:59
    • good
    • 0
この回答へのお礼

taka_tetsuさん
何度も回答ありがとうございました

なんとか解決することが出来ました
引数の[日付]は"yyyy/mm/dd"でフォーマットした文字列にしました
"yyyy"にするところがポイントだったみたいです

アクセス数:=DLookup("[" & [時間] & "時]","テーブル1","日付=#" & [日付] & "#")

taka_tetsuさんには何度も回答してもらって
非常に助かりました
これからも宜しくお願いしますm(_ _)m

お礼日時:2002/07/01 13:12

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