ACCESS総合相談所 その8

このエントリーをはてなブックマークに追加
952_:03/08/20 11:12
953_:03/08/20 11:17
954名無しさん@そうだ選挙にいこう:03/08/20 12:39
>>950
え?普通にテーブルみりゃわかるじゃん。
ってそういうことではなくて?
ADO で Recordset オブジェクト作って RecordCount プロパティを見ればいいんではない?
955950:03/08/20 14:43
>>954
例えば、商品テーブルに400までデータがあったとして、

ID 品名 価格 メーカー 品種
1 アイスコーヒー 100 C社 コーヒー 


400

この場合、400*4=1600件(IDも含める?)のデータがあるとみなすのか、あくまで400なのか、どちらでしょうか?
他にも、メーカーテーブルや品種テーブルもあるなら、そっちの合計もしないといけないし。
956_:03/08/20 14:50
957名無しさん@そうだ選挙にいこう:03/08/20 15:45
>>955
フィールドまで数えるって言うこと?
つまり Null 以外のフィールドの総数を知りたいということかな?
958名無しさん@そうだ選挙にいこう:03/08/20 15:46
俺は総データ件数=行の数だと思うけど。
959950:03/08/20 17:45
就活の面接のネタに、今作っているデータベースの総データ件数を言いたくて、
それでまず総データ件数とはどこを数えるのかを知りたいんです。

>>958
全テーブルの行の数の合計=総データ件数、ということになるのかな。
960名無しさん@そうだ選挙にいこう:03/08/20 18:31
ACCES 97ってXPで使える?
使えないよ。
962名無しさん@そうだ選挙にいこう:03/08/20 20:19
>>960
使えるよ。
963名無しさん@そうだ選挙にいこう:03/08/20 20:36
>>959
だったら、つまり、テーブルの規模ってことだよね。
件数というのはあいまいだから、
レコード数、フィールド数という言い方のほうがいいと思うよ。

テーブルは複数のレコードから出来ていて、レコードは複数のフィールドから出来ている。
964名無しさん@そうだ選挙にいこう:03/08/20 20:38
>>963
そして、データベースは複数のテーブルとリレーションから出来ている。

クエリとかフォームなんかをデータベースの構成要素として含めちゃう人もいるけど、
データベースのデータをどう扱うかということであって、
別に与えられたクエリ以外のクエリを実行したっていいわけだからね。
965名無しさん@そうだ選挙にいこう:03/08/20 20:53
かなりの美少女が登場します。丸顔で笑顔が非常にそそります。
制服からしても現役女子高生なのでしょう.。
ペニスのしゃぶり方も非常にいやらしく、慣れています。
ビラビラは大きめでクリトリスは綺麗に剥けており丸見え。
出し惜しみのない本当に良い作品です。
フィニッシュは口内発射でまったく羨ましい限り。
無料画像を観てちょ。
http://members.j-girlmovie.com/main.html
966名無しさん@そうだ選挙にいこう:03/08/21 01:11
ケース記録のDB作成をしていて、
継続するものをレポートで表示できるようにしたいのですが、いい方法はあるのでしょうか?
現在、
・フォームの入力を行う際に、継続するものがあるかのチェックを入れる
・継続したものは、どのレコードからの継続かをフォーム上で入力
・なお、継続するものを連ねていく場合、ツリーにはせず最初のものの継続項目として扱う
という形になっているのですが、解決するうまい方法があたらお教えください。

自分としては、上記の方法で
継続するものをフォームからの入力で、最初だけ入力が可能。
後からの改変が不能な状態にする方法が存在すれば何とかなるのではないかと思っているのですが・・・。

環境は、Win2000、WinXPでAccessは2000です。
よろしくお願いします。
俺ならこうするかなという話だが、

フォーム上のにケース番号(かな?)のテキストボックスを
作り非表示・使用不可にしておく。
継続チェックのClickイベントをつくって、
継続チェック=True かつ新規レコードの時だけダイアログを表示して、
リストなりで元番号を選択、ケース番号に代入させる。

という感じか・・・・・

ただ、一意のケース番号+枝番号 で管理したほうが
分かりやすい気がするな・・・。
968名無しさん@そうだ選挙にいこう:03/08/24 20:38
現在、請求書発行システムのようなものを作っているのですが、
請求書の内容を登録する際のフォームは、メインフォームとサブフォームの
2つで構成されています。メインフォームとサブフォームは、会社情報と商品情報が主なため
1対多のリレーションシップが成り立っています。
このフォームで情報を入力する際には、コンボボックスを使って基本は選択して
テキストボックスを埋めていくという形を取っているのですが、その選択肢の中に希望のものがない際に、
いちいち、テーブルを開いて登録するというのは賢くないので、フォーム上のボタンをクリックすると、新たに
情報を登録するためのフォームが開くようになっています。そして、登録するとそのまま、メインのフォーム上に
反映されるようにしたいのです。
会社情報の場合は、作ることができたのですが、商品情報がいくらやっても、指定したフォームが見つかりません
といわれてしまいます。なお、組んだプログラムは以下の通りです。
Private Sub cmdOK_Click()
Dim code As String '品番

Select Case Me.OpenArgs
Case "新規商品"
code = Me!品番
DoCmd.Close
'
Forms!F_サブ!品番 = code
Forms!F_サブ.Repaint

Case Else
DoCmd.Close

End Select
End Sub

F_サブというフォーム自体は間違いなく存在するはずなのですがどなたか原因が分かる方、お助けください。
それとも、サブフォームに入力データを反映するというのはできないのでしょうか。。
できるだけ、詳しく書いたつもりなのですが、わかりづらかったら言って下さい。
>>968
もしかして、

Forms!F_サブ!品番 = code → Forms!F_メイン!F_サブ!品番 = code

ってことはないですか?
970968:03/08/24 21:18
>>969
やってみましたが、フィールドが見つかりませんといわれました。
ちなみにエラー番号は2465でした。。
>>968
F_サブが開いてないんじゃない?
972968:03/08/24 21:41
>>971
開いてないって、どういう状態のことをさしているのですかね?
情報登録のフォームを開くとサブフォームは表示されていて、
レポートにも、サブフォームへの入力内容は反映されていますけど。。
973968:03/08/24 22:27
一応、アップローダーに作ってるソフトをあげてみました。
ttp://kari.to/upload/index.cgi

[1374.jpg] お借りします 11 2003年08/24(日)22:25
これです。下の、データシート形式のがサブフォームで、
右上に小さくあるのが、商品登録です
974968:03/08/24 22:34
連続ですいません。
メインフォームから、商品登録のボタンを開いて、F_商品登録で
登録をすると、F_サブが見つからないといわれるのですが、
データベースの画面から直接、F_商品登録を実行すると
そのコメントは出てこず、テーブルのほうにも、登録したものが反映されているみたいです。
>>968
>>970のメッセージでは、>>968よりも状況が良くなってないですか?
(見えなかったフォームが見えるようになった)
あと念のために、エラー出た時にデバッグボタンを押すとどの行で止まってますか?
976968:03/08/24 23:08
>>975
いや、エラーメッセージは変わってないです。
デバッグボタンを押すと
さっき言われたとおり変更してみた

Forms!F_メイン!F_サブ!品番 = code

ここで、止まっています。
>>968
こちらでも似たような環境作ってやってみたけど、その文は問題なく動きました

Private Sub cmdOK_Click()
Forms!F_メイン!F_サブ!品番 = "1"
End Sub

でもエラーになりますか?
978968:03/08/24 23:25
>>977
わざわざすいません。
その式でもエラーになります。。
>>978
なんか、どこかでタイプミスしてないか?
おれは、こういうときの原因は大抵それなんだけど・・・
980968:03/08/25 00:06
>>978
していないです。

いま、サブフォームであった品物を管理しているクエリを単独にしたフォームを作ってみました。
ttp://www.kari.to/upload/source/d/1376.jpg ←これ
これの場合、aっていうボタンをクリックするとさっきと同じ
ttp://www.kari.to/upload/source/1377.jpg
このフォームが出てくるのですが、こちらの場合はキチンと機能します。
なお、プログラムのほうはほとんど変わらないですが
Private Sub cmdOK_Click()

Dim code As String '顧客番号

code = Me!品番
DoCmd.Close
'
Forms!F_F!品番 = code
Forms!F_F.Repaint

End Sub
こうです。

これができるとなると、メインフォームの法でできない理由は、
サブフォームの指定の仕方くらいしか考えられないのですが。。
あと、他に思い当たる原因ってなにかありますかね?
>>968
F_メインのデザインでサブフォームのプロパティのソースオブジェクトはF_サブになってるが、
名前はF_サブになってないとか?
982968:03/08/25 00:19
>>981
ネ申ですね
それでした。。
確認してたはずなんですが、アンダーバーが大文字になってたみたいです。。
すいません。ホント御迷惑をおかけしました。
ちなみに、ついにできるにはできたんですが、今度は
「このオブジェクトは、このプロパティまたはメソッドをサポートしていません」
っていうエラーが出てきました。。デバックはRepaintの所をさしています。
>>982
>Repaint
それはこちらでもエラーになってました
自分はその機能を使ったことないので・・・すみません
984名無しさん@そうだ選挙にいこう:03/08/25 00:29
>>983
いえいえ、ホント助かりました。ありがとうございましたm(_ _)m
985名無しさん@そうだ選挙にいこう:03/08/25 18:22
オートフォーム(表形式)でフォームを表示させています。

そこにチェックボックスを配置したのですが、一つチェックすると全部のレコードのチェックが入ります。
これを回避する方法はありますでしょうか。
986名無しさん@そうだ選挙にいこう:03/08/25 18:53
>>985
質問がよくわからんのだが。
テーブルをベースにしてオートフォーム(表形式)を作ったのなら
テーブルにyes/no型のフィールドあって、
それをただ表示させればよいことではないかと。
987985:03/08/25 19:26
>>986
フィールドはないのです。独自にチェックボックスを追加しました。

そのチェックボックスをチェックすると、該当レコードを非表示にしたいのですが
無理でしょうか。
988名無しさん@そうだ選挙にいこう:03/08/25 19:29
式に連結しているコントロールを編集する方法ってありますか?
>>987
Yes/No型のフィールド作らなきゃ無理だろ。
仮に「表示区分」フィールドを追加した場合、
選択クエリで「表示区分」フィールドの抽出条件に「0」と
入れれば出来上がり。
後は、フォームウィザードでクエリを元にフォームの作り直し。
そしたら自動的にチェックボックスが出てくる。
独自に追加しても意味無し。
次に、チェックボックスのイベントプロシージャ(クリック時)に
「Me.Requery」と書けば全て完了。

一旦、非表示にしたデータの再表示方法は自分で考えなさい。
990988:03/08/25 20:53
これって無理なんでしょうか?
どなたか分かる方御教授おねがいします。
991 :03/08/25 21:01
>>990
そりゃその式の値で一方的にコントロールの値が決められてしまうわけだから…
992986:03/08/25 21:01
>>987
飯食ってる間に989が答えてくれてたね。989ありがとう。
ただ、987の目的がよくわからん。
未完了データを表示させてチェックボックスに
チェックを入れると、完了データになって次回からは
表示されないとか言うの普通だと思うんだが。
そのとき非表示にしたデータが、次回フォームに表示したとき
見たいわけ。
むしろ、テキストボックスに入れたデータで表示内容が変わるとか
したいんじゃない?
993985:03/08/25 21:04
>>989
やはり、フィールドが無ければ無理ですか。
アドバイスありがとうございました。
994985:03/08/25 21:15
>>992
何をやりたかったのかと言いますと、

フォームの表示時に条件をつけて一覧を表示します。
チェックを付けるとその条件外になり、一覧から消えます。
それとは別にフォーム内に条件外のレコードだけを表示するコマンドボタンを置き、
それを押すと条件外のレコードが一覧表示され、ボタンを条件内を表示する物に置き換えます。

やっぱりフィールドがないと駄目ですよね。
独自でやろうとした考えが浅はかでした。
995986:03/08/25 21:22
>>990
テキストボックス0のデータで
別のテキストボックス2の計算式を変更したいという意味かな?
なら
テキストボックス0のLOSTFOCUSイベントに
下みたいなコードを書けばよいと思う。
Private Sub テキスト0_Exit(Cancel As Integer)
If テキスト0 = 1 Then
テキスト2.ControlSource = "=テキスト0*5"

Else
テキスト2.ControlSource = "=テキスト0*9"
End If
End Sub
996988:03/08/25 21:32
>>995
いや違います。
基本テキストボックス[金額]は[単価]*[数量]で計算をして、
勝手に入力されるようになっているのですが、○○一式で幾らといった
感じで、数量、単価で表さないものにも対応したいので、[数量][単価]の
テキストボックスに数値を入力しないでも、金額だけを「入力」できるように
したいのです。
しかし、この[金額]のテキストボックスは式と連結しているため、入力は
不可能になっている。これを回避する方法はないかなと思って質問したのです。
997989:03/08/25 22:16
>>994
フォームにレコードを表示して値の変更をしたいって事は
フィールドが無いと無理って事だよ。
その辺の理解がイマイチだから、根本から勉強し直す事をすすめる。

>>996
俺はVBA使いまくるから、俺ならボックスに直接算式を書かずに
コード記述するかな。
[金額]のEnterイベントにでも[単価]と[数量]の両方に数値が入ってれば
[金額]=[単価]*[数量]の計算をさせる。
既に[金額]に数値が入ってれば計算しない。

Private Sub 金額_Enter()
If IsNull(Me.単価) = False And IsNull(Me.数量) = False And IsNull(Me.金額) = True Then
Me.金額 = Me.単価 * Me.数量
End If
End Sub

これなら、[単価]、[数量]と入力後、[金額]にフォーカスが移動した時点で計算される。
[単価]と[数量]のどちらかでも入力しなかったら計算せず、[金額]に直接入力出来る。
ちょっと強引か・・・。
998sage:03/08/26 00:37
998
999sage:03/08/26 00:39
もしかして
1000名無しさん@そうだ選挙にいこう:03/08/26 00:39
1000来たー!!
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。