1 :
名無しさん@そうだ選挙にいこう :
01/12/10 21:23
2 :
◆.LOLI1TA :01/12/11 04:06
2
販売管理のデータベースをACCESSで作ったら 顧客何人分くらいまで耐えられますか? 商品数は100くらい。 みなさん、どの程度を目安にACCESSを選ぶのでしょうか?
>販売管理のデータベースをACCESSで作ったら >顧客何人分くらいまで耐えられますか? ピントがずれてるな。 こんな質問してるようじゃ10人ぐらいしか管理できんぞ(w
SQLのサブクエリーの文法の質問です。 〜LEFT JOIN A AND (さぶくえりーをコピペ) AS T_hoge 〜 したのち保存⇒実行⇒SQLビューしたら (さぶくえりーをコピペ) AS 部が[さぶくえりーをコピペ]. AS に 変換されてしまいましたです。()の代わりに []はなんとなく納得できるとして「.」というのはなんでしょう? Jet独自の文法でしょうか? 問題は起きていませんが、文法の意味が知りたいのです。 教科書なりヘルプなりで記述されている部分が あればその場所をおしえてくださいませ。
>>5 あるある。
Accessのバグじゃないか?
Accessでさぶくえり使えるの?
サブクエリってaccessだけで通じる方言じゃなかったの??
>>6 てことは6氏もなんだ。
Access2000を使っているのですが( )のまま通そうとしたら、
構文チェックに引っかかって受け入れてくれない。
引き続きどなたか情報キボ〜ンです。
>>9 相当方言が入っていたりSQLエディタがクズかったり
しますが標準SQLに近いものを利用できるようです。
>>10 SQLビューに貼り付け&保存でそのまま実行してるぶんにはOKで、
一度でもデザインビューで開くとダメ(誤変換&エラー)にならない?
12 :
名無しさん@そうだ選挙にいこう :01/12/13 15:22
いつもお世話になっています。 SELECT 発言者, COUNT(*) FROM T_発言 GROUP BY 発言者 ORDER BY COUNT(*) DESC という感じで、発言ランキングを取りたいと思いますが、 更に、発言が5回以上のものだけを取得する、という条件を加えるには どうすればよいでしょうか? ちなみに、 WHERE COUNT(*)>=5 とか書いたら、 GROUP BY があるからだめだと怒られました。 識者の方、ご教授ください。
HAVING COUNT(*)>=5 ぢゃダメ?
14 :
名無しさん@そうだ選挙にいこう :01/12/13 17:56
フォーム中に「テーブルを開く」というコマンドボタンを 付けたいんだけど、どうすればいいのでしょうか?
Access2000のmdbですが、一度設定したページ設定が、 画面を閉じて、また開くと元に戻ってしまいます。 ページ設定が戻らないようにする方法ってありますか? このことでわかる方、よろしくお願いします。
16 :
名無しさん@そうだ選挙にいこう :01/12/13 19:32
>>14 マクロで「テーブルを開く」を作ってボタンに割り当てる。
VBAなら DoCmd.OpenTable "テーブル名"
>>15 設定した後、ファイル-上書き保存をする。
もしくはPrtDevModeプロパティで設定する。
「PrtDevMode」でヘルプ検索してみて。
17 :
名無しさん@そうだ選挙にいこう :01/12/13 21:38
>>15 上書き保存してもダメな場合(最適化すると元に戻る)は、
[ツール]-[オプション]にある「名前の自動修正」をオフにするといい。
>>6 >SQLビューに貼り付け&保存でそのまま実行してるぶんにはOKで、
>一度でもデザインビューで開くとダメ(誤変換&エラー)にならない?
そんな感じです。もうちょい調べてみます。
19 :
名無しさん@そうだ選挙にいこう :01/12/14 04:41
Access97で作ったプログラムをランタイム上で最適化しようとしたら、 「を終了できません。」と表示されてしまい、最適化できません。 (↑これは入力ミスではなくこのように表示されます) プログラムはWindows2000で作成したのを11月からWindowsXPにバージョンアップしています。 何が原因なのでしょうか?
21 :
名無しさん@そうだ選挙にいこう :01/12/14 11:13
すいません、ちょっと教えてください。 コンボボックスで検索したレコードを削除しても コンボボックスのリストからはそのレコードのデータが消えていません。 どうすれば消えるでしょうか。
再クエリーするボタンはつくったのでそれをクリックすれば リストからは削除データが消えるのですが 削除するデータが何件もにわたるといちいちそのボタンを押すのが めんどうなのでできればレコードを削除したら すぐその結果がコンボボックスに反映されるようにしたいのです。 わかりにくくて申し訳ありませんがよろしくお願いいたします。
23 :
名無しさん@そうだ選挙にいこう :01/12/14 12:10
削除時のイベントに再クエリーしてみるのは?
24 :
名無しさん@そうだ選挙にいこう :01/12/14 14:07
フォームからテーブルを更新する時に明示的に更新を指示できませんか? フォーム帳票フォームで一時テーブルと永久?テーブルを元にやってて、 テキストボックスの内容を永久テーブルに反映→ 永久テーブルから一時テーブルを再作成→フォームをリクエリというのを やりたいのですが、テキストボックスの内容を変更してコマンドボタンを 押しても永久テーブルの方にテキストボックスの内容が反映されない ことがあります。 フォームを閉じれば確実に反映されますが、閉じて開いてとやると 不恰好なんで。。
一応?解決しました。フォームをリクエリーすると確実に反映されるみたいです。 Me.Requery 一時テーブルのリフレッシュ等 Me.Requery とやれば良いみたいです。 でも処理が重いし、なんか違う気が。。 もう少しコストの掛からない方法はありませんか?
26 :
名無しさん@そうだ選挙にいこう :01/12/14 15:24
コンボボックスだけリクエリすればいいんじゃないかしら。
>26 テキストボックスだけでリクエリするとダメでした。 なぜ??
28 :
名無しさん@そうだ選挙にいこう :01/12/14 17:47
Access20002にログインするユーザーを 1,管理者 2,訂正用 3,閲覧用 の3種類に分けたのですが、ログイン画面を変えることは 出来ないのでしょうか? ラジオボタンかプルダウンメニューでユーザーを選べる様に したいのですが。
29 :
名無しさん@そうだ選挙にいこう :01/12/14 20:53
>>23 やはりそれがいいですよね・・・。
コンボボックスで検索したデータをサブフォームに表示して
一部のレコードを削除したのち、
削除した内容をコンボボックスのリストに反映したかったんですが
どうもうまくいかない。でも地道に頑張ってみます。ありがとうございました。
VBAでコモンダイアログを開くコードを書いたんだけど うちのPCだったら動くのに、ほかのPCにいれると 「このメッソッドをサポートしてません。」とかエラーメッセージがでる。 何処をどうすれば良いのか見当がつかないのでどなたかお願いします。
あげ
32 :
名無しさん@そうだ選挙にいこう :01/12/17 02:17
>>30 良く知らない者です。
COMDLG32.OCXとやらが無いからなんでしょうかね。
Developer Edition等でないと無いようです。
配布の方法は良く知りません。
ネットを検索すると代用できるフリーのモジュールが有ります。
以前私も困りましたが、テーブルをエクスポートするだけだったので、
DoCmd.OutputToを使うことにより、コモンダイアログを使わなくて
済みました。
ライセンス・配布について詳しい方、答えて上げて下さい。
33 :
名無しさん@そうだ選挙にいこう :01/12/17 09:20
>28 パスワードを発行するしかないんじゃない? 管理者だけでも。 インプットボックス等にパスワードいれてもらって、合致していたら 管理者用フォームを開く。 訂正用と閲覧用は同じフォームで、閲覧用はReadOnlyを設定するだけでも いいとおもう。
これだけでは何なので。 パスワードを入力するインプットボックスを出して、あらかじめ設定した パスワードとマッチする場合のみフォームを開くコード書いときます。 (実際に業務データベースで私が使ってるやり方) Private Sub Form_Open(Cancel As Integer) Dim InpData As String Dim MsgBtn As Integer Dim stPassword As String stPassword = DLookup("password", "password") -----*1 InpData = InputBox("パスワードを入力してください。", "Password?", "Password") ----*2 If InpData <> stPassword Then MsgBtn = MsgBox("パスワードが違うわい!", vbCritical) DoCmd.Close Else Exit Sub End If End Sub *1 あらかじめ、passwordというテーブルを作り、設定したパスワードを入れときます。 (このテーブルは非表示オブジェクトで見えなくしてます) *2 私は面倒なのでインプットボックスにしちゃってますが、あまり見映えもよくないし 入力する文字列が丸見えなので、本来はパスワード入力用のフォームを作ったほうが いいと思います。(定型入力で「*****」みたいな表示にできるはずだし) 実際は、このフォームが管理者以外に見られては困るレベルに応じて、 パスワードテーブルを非表示にするだけではセキュリティ上安全とはいえないので そこらへんは工夫を。 (私は「あんまり見ないで欲しいナァ」くらいのレベルなのでこの程度ですが) または、 まずログイン画面フォームを作り、ラジオボタンなりコンボボックスなりで 管理者・訂正用・閲覧用を選ぶコントロールと、パスワード入力用のコントロール (「使用可能」プロパティを「いいえ」にしておく)配置します。 管理者が選択されたときのみ、パスワード入力用コントロールを使用可能にし、 正しいパスワードが入力されたら管理者用フォームを開く、というのもスマートかと。
>>30 ライセンスに問題アリなら、APIでコモンダイアログを出す。
OCXは使わない。
37 :
名無しさん@そうだ選挙にいこう :01/12/18 13:24
フォームのコンボボックスでテーブル名を選んで そのテーブルのレコードを別のテーブルに追加させたいのですが フォームに追加処理ボタンを作って、 tbl1 = 追加先table tbl2 = 追加元tabls(コンボで選択) SQLで INSERT INTO tbl1 ( fld1,fld2 ) SELECT tbl2.fld1, tbl2.fld2 FROM tbl2 こんな感じかと思うのですが、この時のtbl2の表現が上手くできないんです。 ご指導お願いします。
39 :
名無しさん@そうだ選挙にいこう :01/12/18 14:47
>>37 いまいち聞きたいことが分からないけど・・・
SELECTの前のスペースが全角になってるから動かないのかな?
SQL文をどこで使ってるのか分からないけど、この文だと
tbl2というテーブルからtbl1というテーブルへの追加になるね。
RunSQLで使うとすれば、
DoCmd.RunSQL "INSERT INTO " & tbl1 & " ( fld1,fld2 ) SELECT fld1,fld2 FROM " & tbl2
としたいのかな?
>39 すみません説明がヘタでした。 やりたいのは、 追加元のテーブルを コンボボックスの値と同じテーブル名を 指定したいのです。 モジュール内でDoCmd.RunSQL で実行したいのです。
41 :
名無しさん@そうだ選挙にいこう :01/12/18 15:53
>39、37 つーかSQLがちゃんと文字列になってないからじゃねー? そういう意味で39は正解だけど、普通、InsertとかUPDATEを 非同期でガンガン走らせるモノなの?RunSQLは非同期だから、 Insertの処理を待たずに別処理が始まるよ。素直にExecuteした 方が実行も速いし、同期取ってくれてイイ感じだけど。 あと、テーブルの設計がダメダメで、名前に−(ハイフン)とか使ってる 場合があるんで、AccessでSQL走らせる場合、テーブル名くらいは []とか、'' で囲むクセ付けておいた方が無難だと思われ。 よって、 CurrentDB.Execute " INSERT INTO [" & tbl1 & "] ( fld1,fld2 ) " & _ " SELECT fld1,fld2 FROM [" & tbl2 & "] " コレでオーケー。 もちろん、Fld1やらFld2っつーのは決め打ちのフィールド名だよな? 凝ったことせずに、まずはテーブル名決め打ちでSQL走らせて、 そのあと、テーブル選ぶような順序で考えてくれ。
>41->42 こちらでやってみてうまくいきました。 CurrentDB.Execute " INSERT INTO [" & tbl1 & "] ( fld1,fld2 ) " & _ " SELECT fld1,fld2 FROM [" & tbl2 & "] " すばやいレス本当にどうもありがとうございました。
45 :
名無しさん@そうだ選挙にいこう :01/12/21 10:03
どうしたらいいのか教えて下さい。 オラクルDBにODBC接続で、テーブルをIMPORTしてるのですが、 とても遅く困っています。 NT上のオラクルへはそれなりの速度が得られていたのですが、 UNIX上にオラクルを乗せかえるととたんに遅くなりました。 ODBCの設定ミスなんでしょうか? どうすれば、データをすばやくACCESSorTEXTに持ってくることが 出来るのでしょうか? テーブルデータ全てをTEXTに落としたいのです。 データ件数は5万件弱です
>>45 SQL*PLUSを使ってサーバ側でCSVにでも落としてFTPすれば?
なんか目的に対する手段を禿げしく選択ミスしてるように思ふ。
47 :
名無しさん@そうだ選挙にいこう :01/12/21 10:32
>>46 ありがとうございます。
すみませんが、SQL*PLUSを使ってCSVを作成するには
どうしたらいいのでしょうか。
48 :
名無しさん@そうだ選挙にいこう :01/12/22 22:59
Accessの97と2000って何が違うんですか? 会社でAccess97使ってるんですが、 個人で2000買ってくる意味はありますか?
>>46 set pagesize 10000
set linesize 200 <--適当に
set colsep ,
これでselect流してごらんね。
マニュアル読んでご覧ね。
>>45 ORACLEへのリンクテーブル経由の書き込みは遅いですが
ORACLEからのデータ取得であれば、リンクテーブル経由でもパススルー経由でも
本来はそんなに遅くないと思います。
NTでは速かったとのことなので、何らかの障害があるのでしょうが
もしパススルーで試してないなら以下の手順で試してみてはいかがでしょう。
・「クエリー」という名前でパススルークエリーを作成します。
ODBC文字列もウイザードで設定しておきます。
・Currentdb.QueryDefs("クエリー").sql="select * from hogehoge"
・CurrentDb.Execute "select * into hogehoge from クエリー"
51 :
名無しさん@そうだ選挙にいこう :01/12/23 18:03
sage忘れた・・・。ウトゥ
ちなみにこれは何にメリットがあるんだ? 自己満足で終わらないような利用方法があるのか?
54 :
名無しさん@そうだ選挙にいこう :01/12/24 20:05
>>48 ありません。
アクセスは下位互換性がないも同然なので、
家で仕事したいときやちょっとしたコードの
テストなんかの時困ること請け合い。
>>53 これって何のこと?
このスレのこと?それともAccessのこと?
まー、どっちにしても使い方次第だよ。
>55 だなー。どっちにしろ>53はAccessのことよく知らない知ったかなんで 無視するよろし。Accessがマルチユースに極端によわいのは実装の所為 じゃないし、オラクルなんかのフロントに使われてる事実も知らないんじゃ? MDBを共有とかさせてるバカが安定性がどーのって話を持ち出したときは マジでシバきたくなるよ。それはAccessが悪いんじゃなく、お前がAccess(Jet)の 特性知らんだけだろってカンジで。 >54 ちなみにAccessの..というよりMS製品は、暗黙の了解で、下位互換は 一世代前までは一応サポートしよう、ということになってたと思う。 だから97→2000はそこまでの苦労はない。もちろん参照設定やら何やら イジる必要がありますが。 ただ、MDBな限り、2000には何のメリットもないと思う。体験的に。
>>56 全く同意
でもなぁ、、厨房でも中途半端に使えてしまうことが、
かえって悪評につながっていることは否定できん(w
SQL鯖も簡単に厨房が使えるから、糞呼ばわりされそう
な・・・(w
>ただ、MDBな限り、2000には何のメリットもないと思う。体験的に。 自分はもうVBAウインドウがわかれてないとキツイ
>>57 アクセスの使いやすさがあったからこそ
今、漏れはDBで飯が食えている。
強力なメリットでもあれば、デメリットでもある訳だな(藁
正規化が理解&実践できるかどうかで 雲泥の差がでるな。 仮にもRDBだから。
>>60 こればっかりは、数こなすしかないだろう。。。
何でもかんでも正規化すればよいとゆうものじゃないからな
62 :
名無しさん@そうだ選挙にいこう :01/12/26 10:43
メインの使用の仕方はどのようなことですか?
>>62 >メインの使用の仕方はどのようなことですか?
また、ヴァカが。。。
何に対して、何の質問してるんだ(w
>61 禿同。正規化はMSのテクニカルサイト行けば理解 できるだろうが、何でも正規化して、ユニークキーが 氾濫してるようなDBなんぞ見たくもないね。 こればかりは経験だな。
65 :
名無しさん@そうだ選挙にいこう :01/12/27 23:49
サーバーがWin2Kサーバーで、クライアントがWin98とWin2Kと両方あるんですが、 クライアントがWin2Kの場合だけ、接続が1時間で切れてしまいます。 ログインから1時間経つと、Connectionが切れて、再び接続すると Oracle側のエラーで、TNSプロトコルアダプターが存在しませんとエラーに なってしまいます。エラーになるたびに、ローカル接続で、接続を1度無効にしてから 再び有効にして、DBへの接続をしないとうまく行きません。 DBがOracle R8.1.7 で、ミドルウェアはADOを使ってAccess2000のVBAで処理してます win2kサーバーのActiveDirectoryとDynamicDNSあたりがあやしいんではないかと思ってますが、 解決方法が見つかりません。どなたか教えてください。
66 :
名無しさん@そうだ選挙にいこう :01/12/28 09:00
アクセスの使用メリットは何がある?
67 :
名無しさん@そうだ選挙にいこう :01/12/28 15:54
70 :
名無しさん@そうだ選挙にいこう :01/12/28 21:07
なるほど 自己満足の世界ということで決まりですか 使用方法としては
学生さんならそんなもんじゃないの
73 :
名無しさん@そうだ選挙にいこう :01/12/29 10:10
これがあって生計が成り立っている人がいるのか。 そういう人には激安な良い商品だな。 あと、馬鹿の理論家がでてきたけれど こいつは目的と手段がずれているんだろうな 典型的な評論屋だな
74 :
名無しさん@そうだ選挙にいこう :02/01/01 23:21
お手軽なのもアレだよね。。 ユーザが改造しちゃったのとか、素人が作ったぐちゃぐちゃで 訳分からんのを作り直せとか。。
質問です。 顧客マスターテーブルがあります。フィールドは [ID][名前][都道府県][住所]です。 このテーブルを[都道府県]で抽出したクエリを 作成したのですが、連番を表示する演算フィールドの[抽出後ID]を 追加して表示したいのです。 どんなことをすればいいのですか?
>>74 たしかにな。。
漏れの厨房時代に作ったDBなど、他人のフリしたくなるしな(W
だが、お手軽だったからこそ、今漏れもエラそうなことがいえる(w
>>75 うーん。抽出後IDをオートナンバー型で持つ「結果テーブル」にインサートするのはどう?
[抽出後ID][名前][都道府県][住所]のテーブルに対して
[名前][都道府県][住所]をクエリーからインサートすると[抽出後ID]は自動的に付番されます。
78 :
名無しさん@そうだ選挙にいこう :02/01/03 23:54
>>75 下記の演算式でできると思う。
DCount()でも抽出させるためクエリーの速度は落ちますが。
DCount("*","テーブル名","ID<" & [ID] & " 都道府県='" & "条件" & "'")
元旦から仕事ですか?
大変っすね。
79 :
名無しさん@そうだ選挙にいこう :02/01/03 23:56
式間違えた。 下記が正解。 DCount("*","テーブル名","ID<" & [ID] & " And 都道府県='" & "条件" & "'")
80 :
名無しさん@そうだ選挙にいこう :02/01/04 14:43
マスターテーブルのフィールドの一部を、テーブルで管理したいんですが。 [ID],[名前],[フラグ1],[フラグ2],[フラグ3],[フラグ4]… というフィールドを持つテーブルがあって、フラグ1],[フラグ2],[フラグ3],[フラグ4]… の部分をテーブルで管理したいのです。 現在でもこの[フラグn]は42個のフィールドがあり、これから追加・修正する場面が かなりあると想定してます。 こういうことって可能でしょうか? [フラグn]は全てYes/No型です。
>>80 どういうこと?
フラグフィールドをそれぞれ別のテーブルにするってこと?
[ID][FlagNumber][Flag]というテーブルを作るとか? これはこれで使いにくそうだけどね そのフラグって何につかってるのかな そこから考えたほうがよいかもしれない
>81 別テーブルにはしません。 >82 そうです。フラグのテーブルを作ります。 それで、FlagNumber(ID)、Flagを一覧表示させたい。 マスターテーブルをデザイン画面を開かずに、このフラグテーブルが更新 されたら、マスターテーブルのフィールドも更新するようにしたい。 と思ったんですが、うーん、テーブル構造から考え直した方がいいのかな。 すいません、もう一度よく考えてみます。レスありがとうございました。
Access2000でADPを作成しているのですが、 親レポートとサブレポートのレコードソースを、印刷時に動的に変更する方法が分かりません。 システムの仕組みとしては、クライアントが複数台あるため、サーバ上に クライアントのコンピュータ名をつけたテーブルを作り、それをレコードソースに設定して 印刷しようというものです。(全てVBAを使用しております) 各レポートの"Report_Open"イベントで"Me.RecordSource = 〜"と指定することで 親レポート、サブレポートのレコードソースを動的に変更することは、 それぞれを別個で開く場合は出来たのですが、いざ親レポートとサブレポートをリンクして 開こうとすると、「印刷が始まった後にレコードソースの変更はできません。」というエラーが 発生してしまいます。(これはサブレポートの"Report_Open"イベントで発生しているようです) 仕組み自体がガラッと変わっちゃってもいいので、何かアドバイスをお願いします。 よろしくお願いします。
85 :
名無しさん@そうだ選挙にいこう :02/01/06 00:53
ど素人なのですが教えていただけないでしょうか。 Accessで作った簡単なDBの評判がよくて、事務所内で使われることになりました。 使い方は、サーバーマシンにDBを置いて、他のマシンからは、Windowsネットワーク 経由で直接アクセスしようというものです。なさけないほど単純なものですが、 ちょっと実験したところでは、問題なさそうです。 とは言え、排他制御とか少し心配です。 このような使い方をしてもよいものなのでしょうか。 よろしくお願いいたします。
86 :
名無しさん@そうだ選挙にいこう :02/01/06 01:11
>>85 3人も使うと無茶苦茶重くなるよ。プログラムやマスターは各PCにおいて
DBには必要な時だけアクセスするようにする。新規追加は問題ないけど
修正・更新は排他をしないと訳のわからんことになる。
>>86 早速のレスありがとうございます。
実際、3人で使うのですが、書き込み等は日に30回程度の予定です。
(そんな程度の需要なので、私ごときの制作物を使うのです。)
Accessは各マシンにインストールしてあります。
それで、すみません、一番気になることです。
>修正・更新は排他をしないと訳のわからんことになる。
この「排他をする」の意味はわかるような気がするのですが、
どうするかがまったくわかりません。
(前に、何もしなくてもAccessがやってくれる、と聞いた気も
するのですが、やはり違うのでしょうか???)
教えて君になってすみません。
ヒントだけでも教えていただけないでしょうか。
DBへの書き込み頻度は少ないですが、バッティングの確率が0では
ないはずです。やはり業務のデータが飛ぶのはこわいのです。
どうかお願いいたします。
88 :
名無しさん@そうだ選挙にいこう :02/01/06 02:53
>>87 更新処理に入った場合は、処理中ということでフラグを立ててやるわけ。
そのフラグの立っているデータに対してさらに処理をしようとした場合は弾く。
そんな感じ。まぁ、データの更新も直接テーブルをいじくるんじゃなくって
非連結フォームに抽出しておいた後修正をして、.editを使って更新ね。
簡単なシステムでも基本としてそういうことは心がけておいた方がいいと思うよ。
89 :
名無しさん@そうだ選挙にいこう :02/01/06 03:42
>>89 Format(和暦, "yyyy/mm/dd")
でできませんか?
91 :
名無しさん@そうだ選挙にいこう :02/01/06 03:55
>>89 DateValue("平成11年5月18日")=99/5/18だよ。
ヘルプをしっかり見てね。
>>90 ,
>>91 どうもありがとうございます。
=Format(和暦, "yyyy/mm/dd")
=DateValue("平成11年5月18日")
どちらでも固定された値は変換できるのですが、和暦の部分に[フィールド名]を入れたいのです。
それをコントロールソースの部分で使いたい。
その場合、どちらでも出来ないようなのですが。
>>89 にて言葉足らずですみません。
クエリとleftやらを使えば出来るようですが、よくわからないんで悩んでみます。
私の馬鹿、理解不十分です。。本屋行ってみます。
>>92 具体的に何をしたいのかがよくわからない。
コントロールソースってレポートやフォームの?
クエリ作ってFormat([フィールド名], "yyyy/mm/dd")ってして、
引っ張るって言うのじゃだめなのか?
ある人物の年齢が分かってます。 これをもとに、毎年、年齢が加算されていくように計算したいんです。 ただし、目に見える部分、入力フォームは「 H10年01月01 」の書式で行いたいんです。 その計算方法なんですが、まず、入力年月日、入力時の年齢のフィールド作ります。 date()-入力年月日+入力時の年齢=現在の年齢 と考えているのですが、まず、平成を西暦に直さねばと考えたんです。
>>88 ありがとうございます。(すみません。寝てしまいました。)
まだよくはわかりませんが、おっしゃることをヒントに考えてみます。
>>94 書式使え。
できるAccessみたいな本でも載ってる。
立ち読みでもいいからみてこい。
97 :
名無しさん@そうだ選挙にいこう :02/01/06 11:20
>>94 どんな入力の仕方をしてもフィールドへの格納はyyyy/mm/ddの日付タイプにするということを
考えよう。年齢とかは計算でいくらでも起せるので可能なら生年月日の入力を。
中途半端なデータは持たないことが一番。
ラジャーとは?
>>99 マハラジャよりちょっと下の位の人のこと。
>>99 wrote:
Do You Know ガッチャマン?
103 :
名無しさん@そうだ選挙にいこう :02/01/08 12:21
とてつもない初心者です。 サーバーは量販店で購入可能なモノでメモリーを可能な限り増設。 クライアントも量販店で購入可能なモノでメモリーは256で5台使用。 機種は最新のもの。OSはXPを予定。多分DELLになると思います。 アクセスを顧客管理として使用した場合。 顧客の氏名、電話番号、住所、購入商品名など10項目ぐらい作る。 その上で何人位の顧客数をストレス無く使用できますか? 顧客数10万人以上でもストレス無く使用出来るものでしょうか? どうぞ、親切な方宜しくお願いします。 また、アクセス以上に顧客管理ソフトとして良いモノがあったらご教授下さい。
104 :
名無しさん@そうだ選挙にいこう :02/01/08 14:11
>>103 サーバーもクライアントと同じマシンで充分かもね。
停電対策とか考えると信頼性のあるサーバーの方がいいけど。
顧客数は100万人でもAccessで問題ないでしょう。
クライアント5台でサーバーのMDBファイルを共有なんてことやると遅いと思います。
サーバーにはAccessに添付のMSDE(SQL Server)等、サーバー用のDBを使うべきでしょう。
105 :
名無しさん@そうだ選挙にいこう :02/01/08 21:52
106 :
名無しさん@そうだ選挙にいこう :02/01/09 00:03
ACCESSよりテーブル内データをコピーし、これをExcel へ貼り付けした場合、ACCESSでは「1900/01/01」のデー タがEXCELでは「1900/01/02」となります。 ACCESSよりEXCELファイル形式にてエクスポートした 場合には、特に上記現象は発生しません。 また、EXCELへ貼り付ける際にテキスト形式を指定した 場合にも上記現象は発生しません。 とりあえず上記はOffice2000にて発生しており、Office97 等で発生するかどうかは不明です。 原因等ご存知の方、いらっしゃいましたらご教示願います。
>>106 詳しくはわからないのですが、Accessは1899/12/31を1、
Excelは1900/1/1を1として日付をカウントしています。
設定を数値に変えてみると比較することができると思います。
それに関わるバグってところでしょうか・・・。
108 :
名無しさん@そうだ選挙にいこう :02/01/09 01:34
>>106 面白そうなので調べてみました。
(EXCEL2000とACCESS2000)
<入力した日付項目の値を数値項目に変更して表示してみると>
------------EXC---ACC
1900/01/01---01----02
1900/01/31---31----32
1900/02/01---32----33
1900/02/28---59----60
1900/02/29---60----入力不可
1900/03/01---61----61
1900/02/28までが不一致であり、ACCESSでは1900/02/29の入力が出来ない
閏年計算は、
4で割り切れる → 閏年
100で割り切れる → 閏年じゃない
400で割り切れる → 閏年
であり、1900/02/29って日付は無いので、ACCESSが正しい
てことは、ECCELのバグなんですかね
EXCEL97は持ってないけど、ACCESS97でのの結果は同じでした
私のマシン、最新のサービスパックを入れてるつもりだけど、最近トラブルがあって
ちょっとあやしいです。
最新のサービスパック入れて解決出来なければECCEL2000のバグのような気がします。
何か、2000年問題に似てますね。
109 :
名無しさん@そうだ選挙にいこう :02/01/09 03:14
110 :
名無しさん@そうだ選挙にいこう :02/01/09 04:12
>>109 既製品が有ればそれに越したことはないが、マルチクライアント大丈夫か?
103読んでると、アクセスは初心者かもしれんが、ど素人とは思えん。
少なくともアンタよりはいいシステム作ると思うよ。
>>110 またボケた奴がでててきたな(w
カスタマイズ前提に決まっておろうが。
10万人*商品数でクラサバなんてさすがに漏れもjet-mdbで
うけなないし(w
107&108さん ありがとうございます。
114 :
名無しさん@そうだ選挙にいこう :02/01/09 09:44
123456
フォーム上にコントロールソースとして指定し画面表示(表形式) したテーブル(orクエリー)を、イベントプロシジャにおいて キー指定することによって任意レコードへと自動スクロールできる のか? GoToRecordメソッドでは、件数(オフセット)指定や最初、 最後へのジャンプしかなさそうで。
>116 AbsolutePositionプロパティで絶対位置求めてGoToRecordか、 Bookmarkだな。
>>116 というより、Filter プロパティでピックアップしたサブレコード群の
第一件目が、全体のうち何件目かをわかる方法はないのか?
(シーケンシャルに読み続ける以外の方法で)
>>118 何件目じゃなくて、一意のキーで識別したほうが利口だな。
Access2000のmdbファイルに設定されたパスワードを解除、または知る方法を教えて下さい。
>>120 むかしハックしたやつがいて、
どっかのログにあるかも
違法でないなら教えてあげるが....
>>118 では、そのキーをコマンド内に指定することで、自動スクロール表示できるんでしょうか?
なやんでます
>>123 ↑がずれてるぞ。2回目だからワザトか?意味不明。
だから、その方法は117で書いた。(以下Loopしたりして)
117のやりかたは、キーを指定するやり方?
>>125 RecordsetCloneを作ってFindFirstでそのキーに該当するやつに移動して、
元のRecordsetのBookmarkをあわせる。
とか。
脊髄反射でヘタレな返答返す前に やってみれば?
>>127 教えてクン 逆ギレ君 厨房 まとめて逝ってよし
どなたか教えて。 スキャナー(EPSON GT8700)でスキャンした図面 A4 解像度96 ファイル形式JPG これをAccess2002 データ形式 OLEオブジェクト型に入れて参照フオーム作成したら すごく重くて表示に時間が掛かります。 AccessOLEオブジェクト型をみますと 1. Microsoft Photo Editor 3.0イメージ 2. パツケージ と 2種類の表示があり、1.が重く 2.は早く表示されます。 2.にしようと思うのですがどうしても1.になります。 2.のパツケージ型にするのはどうしたら良いか、または早く表示させるのは どのようにしたら良いか教えて下さい。 1.と2.の混在はAccess97の時のデータだと思います。
131 :
初心者その2 :02/01/11 11:42
エクセルのデータをアクセスとリンクして読み込ませた時、 金額のデータがすべて#Num! になってしまいます。 デザイン画面でテキスト型になっているせかと思うのですが、 数値型に変更すると「このプロパティを変更することが出来ません」 というエラーが出て変更が出来ないのです。 既出かも知れませんが、1が見れないので…… 教えて下さい。お願いします。
>>130 私も昔 JPG を取り込んだのですが、サイズが大きくなり速度も遅かったです。
取り込む時点で JPEG から BMP? に変換されているような感じでした。
ACCESSのテーブルには取り込まず、外部ファイルとしてファイル名だけ登録し
表示時はイメージコントロールにVBAで表示するようにしたら快適になりました。
Access97 だったので 2002 ならもっといい方法があるかもしれませんが。
133 :
名無しさん@そうだ選挙にいこう :02/01/12 22:25
厨房質問ですが、使える言語perlだけの素人学生なのでご容赦の上、ご返答下されば幸いです。 今度、学園祭で【お客さんをデジカメで撮影→プリクラ風のフレームを付ける→印刷】 という手順でプリント印刷をしたいのですが数がすさまじく、処理を一元化したいのですが この場合、自動的に即、デジカメから読み込んで、フレームを選択したら即印刷、という作業を したいのですがaccessを使えば可能でしょうか。 可能であれば使える友人に頼もうと思っているのですが、、、、厨房ですみません、、
134 :
名無しさん@そうだ選挙にいこう :02/01/13 01:08
135 :
どうしましょ :02/01/14 22:50
アクセス起動時に、予定時刻にアラーム鳴らしたり、 メッセージを表示させたりのコードどこかにありませんか?
136 :
130初心者 :02/01/15 10:09
132さん、ありがとうございました。 勤め人につき、3日間休みでした。
a
138 :
名無しさん@そうだ選挙にいこう :02/01/15 11:32
>>135 コードがあるとこは記憶にないけど、フォーム-プロパティ-イベント-タイマ間隔に
30000ぐらい(単位がミリ秒なので30000だと30秒ごと。用途に合わせてね)と
タイマ時のイベントプロシージャでNow関数とかTimer関数とかで時間調べて
アラーム鳴らすなり、メッセージ出すなりするとか。
ただ、タイマ時のイベントとかでバグがあると30秒ごとにバグを繰り返すことに
なりそだから気をつけてね。
あとはフリーソフトとかでそういうのありそうな気がするけど、そっちの方が
もしかしたらいいかもしれんね。
139 :
どうしましょ :02/01/15 15:51
140 :
こまねずみ :02/01/16 11:48
Accessのファイル自体を最小化して起動したいのですが どう行えばよのでしょうか。マクロ?コード? よろしくお願いします。
>>140 (゚Д゚)ハァ?
ファイル自体の最小化って何?
142 :
こまねずみ :02/01/16 12:33
↑ アクセスのひとつのファイル、ひとつのmdbファイル。 それを開くときに、最小化したいんですよ。 言い方が下手だった。失礼。どうしたらいいんでしょう。
あ、画面の最小化です。失礼。。
>↑ アクセスのひとつのファイル、ひとつのmdbファイル。 >それを開くときに、最小化したいんですよ。 >言い方が下手だった。失礼。どうしたらいいんでしょう なにがしたいかサパーリわからん(w アクセス使う前に国語勉強した方が良いな(w
ACCESSの任意のファイル、たとえば"test.mdb"とかを開くとき、 そのファイルのウィンドウを最小化の状態、もしくはすぐ最小化させたいんですよ。 なにか良い方法あったら、教えてください。
>そのファイルのウィンドウを最小化の状態、もしくはすぐ最小化させたいんですよ。 なんの目的なんだ? API使えばできるが、意味わからんだろう? よけいなこと考えない方がよいレベルだな(w
>145 サンプルデータベースの営業支援、住所録、家計簿がそういう動作に なってるから、そのソースコード調べればいい。
148 :
名無しさん@そうだ選挙にいこう :02/01/16 13:39
>こまねずみさん 起動時のフォームの開くときのイベントにマクロでキー送信使って Alt+スペースでコントロールメニューを開いてAlt+Nで最小化とかでできそうな 気がする。試してないけどね。
>147 >148 ありがとう。やってみる。
DoCmd.RunCommand acCmdAppMinimize これでできました。お騒がせしました。
151 :
名無しさん@そうだ選挙にいこう :02/01/16 23:21
しかし、141=144=146 は痛いな。 アプリの標準機能や関数で実現できるのに、ろくに調べないで何でもかんでもAPIで組む厨房とみた(藁) ところで、こまねずみさん、このコマンドの実行アクション(「最小化 (アプリケーション)」)を使った有名なAccessのテク教えてあげます。 いずれ役に立つことがあるかも。 1.フォームを作って、「ポップアップ」を「はい」に。 2.AutoExecマクロを作成し、下記のアクションを追加する。 ・コマンドの実行 → 最小化 (アプリケーション) ・フォームを開く → 1.のフォーム このデータベースを起動してみてください、面白いですよー。 ではでは。
>>151 >アプリの標準機能や関数で実現できるのに
ほー。。どうよんでもACCESSそのものの最小化
しかよめなんだがな(藁
API使わずにやる方法あるのか(w
>>152 だから、
DoCmd.RunCommand acCmdAppMinimize
でいいのでは?
>152 もう止めとけよ、API房。見てて哀れだ。>153、150 が大正解だろ。 悔しいなら実際にAPI使ってやるソース上げろよ。 ま、どっかのサイトから拾ってくるのが精々だろーがな。 >>148 キー送信(Sendkeys)は手軽に使えるけど、趣味のレベルで止めとこうよ。 必ず誤動作の原因になるから。
それにしても、このスレ、煽りとしか思えない書き込みが多すぎるね。。。。 心が狭いよ、質問の仕方自体がわかんないのが、初心者なんだろ。 それは、どの掲示板でも同じ。 2CHだから確信的にわざとらしく中傷している輩がいるとしか思えない。
>質問の仕方自体がわかんないのが、初心者なんだろ。 人間の初心者だな。
皆さんいろいろ教えてくれて、ありがとう。 参考になってます。 >>151 いいっす!ありがとう。
>>156 Access初心者
と
初心者を免罪符にして甘えてるやつ
は分けて考えたほうがいいだろう。
技術情報交換を目的としたボランティアベースの掲示板なら、
後者については、何処へ逝っても扱いはほぼ同じだ。
わはは!
>気がする。試してないけどね。 ってのも無責任なんでちと試して見たよ。あ、環境はAccess2000です。 ってえか試しと仕事のうちにスレが進んだなあ。 148を式で書くと、SendKeys "% N"。 これとこまねずみさんのDoCmd.RunCommand acCmdAppMinimizeを 起動時の設定やマクロAutoexecで開いたフォームの開く時とかの イベントプロシージャにしても最小化できなんだです。 マクロのキー送信で% Nを作って右クリックで実行は 最小化されるのにWクリックとAutoexecだと最小化できませんでした。 151さんのマクロのコマンドの実行で最小化 (アプリケーション) は Wクリックで実行できますがポップアップをいいえで作るとAccessが 最小化できないです。 有名なテクそのままだとポップアップのウィンドウのみでAccess本体は 最小化できますね。 ということでacCmdAppMinimize・最小化 (アプリケーション)の方が Sendkeys・キー送信より素直。(155さんの言った通りでしたわ) .mdbを開くだけの操作で何も残さずに最小化、ができんかった。の二点。 なので、こまねずみさんがacCmdAppMinimizeをどう使ったか教えてくださいな。 それと141さん自慢のAPIを使って最小化する方法教えてくださいな。 別人とのことなので144さんもお願いします。
>161 たしかにできない…。 しかし、私の場合たまたま「ポップアップ」が必要でもあり その状態でAutoexecしてたんですね。それでできたと…。 たしかに有名になりうる仕様ですねぇ…。。 まいった。
>こまねずみさん 151さんの「有名なテク」と同じことを違う方法で (っていってもVBAでマクロ呼んでるんだから一緒の事だけど) だったんですね。 う〜んウェイトでちょっと待ってみたりしないとできないのかな。 引き続き141=152=154さんと144=146さん APIで最小化、お待ちしています。
ヒロシ(164)ゲトー!!
>>163 Public Const SW_SHOWNORMAL = 1
Public Const SW_SHOWMINIMIZED = 2
Public Const SW_SHOWMAXIMIZED = 3
Declare Function ShowWindow Lib "User32" _
(ByVal Hwnd As Long, ByVal nCmdShow As Long) As Long
2.ユーザー定義関数からの呼び出し
' 最大化
Public Function AccMaximize()
Dim lngRet As Long
lngRet = ShowWindow(hWndAccessApp, SW_SHOWMAXIMIZED)
End Function
' 最小化
Public Function AccMinimize()
Dim lngRet As Long
lngRet = ShowWindow(hWndAccessApp, SW_SHOWMINIMIZED)
End Function
' 元のサイズに戻す
Public Function AccRestore()
Dim lngRet As Long
lngRet = ShowWindow(hWndAccessApp, SW_SHOWNORMAL)
End Function
166 :
名無しさん@そうだ選挙にいこう :02/01/22 13:22
超超超初心者です。Access2002です。 70万件ほどのデータなのでアクセスでないと処理できないと 必要に迫られて使い始めたのですが、 些細なところでつまづいています。 主キーには1から順にID番号がふられています。 この数字の前にアルファベットの「A」を付けて表示したいんです。 エクセルなら書式のユーザ設定で「"A"#,##0」とすれば出来ることなのですが、 これをアクセスでするにはどうしたらいいのか、自分なりに調べたんですが わかりませんでした。 皆様にはあまりにくだらない質問かもしれませんが、 お答えいただけるとありがたいです。よろしくお願いいたします。
70万件とは、初めて聞いた。 でフィールド(項目)は幾つ有るの。 無理ではないかな、多すぎて。 なんでAを付けるの? 区分分けするのであれば、無理して主キーでやることないけど。
168 :
名無しさん@そうだ選挙にいこう :02/01/22 14:15
>166 ID は内部的な判別用と割り切って、クエリで表示または出力するときに A をつけるのにとどめるのがいい。 Excel の感覚で Access やろうとしてるんじゃないかと思うけど、 2つは考えかたが違う。 詳しくない人は内部格納用のデータを表示や出力と一致させたがるけど、 データベースとしては非効率。データベースでは、内部格納データは 重複しない数字というふうに単純にして、表示や出力の時に整形する。
167さん、168さん、早速レスありがとうございます。 フィールドは主キー入れて全部で5つです。 「A]を付ける理由は出力時に他のデータと区別するためです。 クエリで出力の時に付けることができるのですね。 168さんのおっしゃるデータベースのとらえかたはよくわかりました。 クエリという考え方すらまだつかみきれていないような 本当の初心者ですので、これから調べてトライしてみます。 御二方、ありがとうございました。
>>166 項目4つで70万件?
なにが目的かなー。
なにを区分するの。
まあ詮索はやめとこ。
Accessガイドブック一度見た方がいいのでは、
件数だったか、全体の容量数に制限があったように記憶しているが。
171 :
名無しさん@そうだ選挙にいこう :02/01/22 19:42
素人ですが、自分なりに調べても下記のエラーの対処方法がわかりません。 NT4.0 SAVERのオラクルDBをODBCでアクセステーブルへリンクし、そのアクセスファイルはサーバーに保存されています。クライアントよりアクセスファイルを開き、、、テーブルを開こうとしたら「オラクルとの接続が失敗」とのエラーが発生します。 どう対処したらいいでしょうか?
追記 サーバーマシンからは、オラクルへ接続可能でテーブルが開きます。 クライアントマシン(98、ME)からは、オラクルへ接続が不能です。 対処方法・・・をよろしくおねがいします。
>>173 反応・・ありがとうございます。
クライアントに接続の権限はあります。クライアントからサーバーの共有ファイルは全て開くことができます。
今回の件もクライアント側からアクセスの共有ファイルは開きますが、、、リンクテーブルが開きません。
>>174 オラクルはよく知らないけど、データベースへの接続権限とかあるんじゃない?
それはクライアント側にあるの?ユーザ設定とか。
つーか、サーバにおいたファイルをそのまま開いてるの?
176 :
名無しさん@そうだ選挙にいこう :02/01/22 21:43
お世話になります。 エクセル2000で作業中、突然アプリケーションエラーです のメッセージが出てきて御亡くなりになってしまいました。 このときポシャったデータを復旧する方法はあるのでしょうか?
171=174=ネットワーク勉強暦1ヶ月・・・MSアクセス勉強暦6ヶ月の三十路初心者です。
>>175 データベース(オラクル)への接続権限があるのかはどうか?って初耳です。サーバー上でオラクルへODBC接続は問題なく接続されたのですが・・
クライアント側からサーバーに置いたファイルをそのまま開いてます。
あっ、、、今ふとひらめいたのですが、クライアント側から新たにオラクルへODBC接続する設定を試し見るべきなんでしょうか?
いろいろと、感謝です。
178 :
名無しさん@そうだ選挙にいこう :02/01/22 22:31
>>176 テンポラリファイルが作成されてれば
再度Excelを起動したときに復旧する
なんかOS自体を立ち上げて→Excelを起動した方がいいようだが。
179 :
名無しさん@そうだ選挙にいこう :02/01/22 22:53
ACCESS2000のファイルが壊れてしまいました。 開こうにも認識してくれません。 何か言い方法は?ない?
>178 ありがとうです。お陰で復旧で着ました
>>182 クライアント側にもオラクル製品が必要だということですか?
アクセスファイルを共有してもODBC接続したアクセスリンクテーブルが開かないということは、、、オラクル製品どうしでネットワーク接続する。。。と理解していいんですか?
「Net8 Easy Config」をキーワードに勉強していきます。
ありがとうございました。
>>183 >クライアント側にもオラクル製品が必要だということですか?
そうです(厳密にはライセンスもか)。
MDBファイルを共有しても、MDBファイル自体やファイルサーバがOracle
のテーブルを読みに逝くわけでは無いですよね?
共有したMDBファイルをクライアントのDBエンジンが読みとって、
そのクライアントとOracleが載ったサーバ間でデータのやり取りがおこります。
なので、そのクライアントにNet8が必要になるわけです。
試しに、リンクテーブルしか入っていないMDBをバイナリエディタで覗いてみると、
接続情報しか入っていないのは薄々感じられるかと思います。
185 :
若葉 ◆MTB/PLeg :02/01/25 16:48
Access始めて数週間の若造です。 メインのフォームから他のフォームを開いて編集して閉じた時に、 メインフォームの中にあるサブフォームをリフレッシュ?(リロード?)させたいのです。 どのようにVBAを記述すれば宜しいでしょうか? 一応、メインフォーム自体を閉じて開き直すのは処理上出来ないです。
>>184 アドバイスに感謝します。
早速、オラクルのCD-ROM集の中から、オラクル8クライアントCD-ROMを発見し、インストールしました(ライセンス認定証も確認)。
Net8 Easy Configの設定でプロトコフに手軽なNetBEUIに対応してないこといショック。恥ずかしながらもTCP/IPを勉強しLAN設定することが・・・優先です。
本当にありがとうございます。今後もよろしくです。
>>185 forms!メインフォーム名!サブフォームコントロール名.form.refresh
か
forms!メインフォーム名!サブフォームコントロール名.form.requery
って感じかなぁ。未確認。あいまいでごめん
188 :
名無しさん@そうだ選挙にいこう :02/01/26 16:12
すいません。教えて下さい。 コンボボックス cmb都道府県とcmb顧客がありまして cmb顧客のRowSouceは SELECT * FROM 顧客テーブル WHERE (都道府県 = @都道府県) というパラメータークエリです cmb都道府県の変更時にcmb顧客のRowSouceをインプットパラメータをVBAで変更したいのですが こういったことはできないのでしょうか? 文字列連結して動的にSQL文を発行するのはできたのですが、どうもごちゃごちゃして できたらインプットパラメータで処理したいんです。
189 :
アクセス初心者 :02/01/27 01:28
ACCESS97で、溜まりに溜まっている画像を整理したくてヘルプ 片手にいじっているのですが、どうしてもヘルプでは探し出せ ないことがあるので教えてください。 画像をフォームに表示するにはどうしたらよいでしょうか。 今はとりあえずフォームから作成しようと思い、デザインフォームで 作業しています。画像を表示するのはツールボックスの「イメージ」 だと思ったのですが、それだとその場所に即画像を載せようとしてし まいます。 そうではなくて、例えば、フォルダを選択したらそのフォルダ内の画 像すべてを一覧で表示するようにしたいのです。
190 :
名無しさん@そうだ選挙にいこう :02/01/27 01:38
そういうのさ、アクセスじゃなくて画像管理ソフトを使ったほうがいいと思うよ。 フリーでわんさかあるでしょう。
190>>ないです。 シェアも含めて全部見て、それっぽい機能のあるものは 全部DLしてためしてみましたが、駄目でした。
190>>どういうのを作ろうと、必要としてるのか書かないと駄目ですよね(汗) すみません。 私はデジカメの写真と友人からもらったイラストを整理したいのですが、これらの画像一つ一つに、どこでもらった、撮った、誰の作品だ、というキーワードを つけて、そのキーワードに合致するものの一覧をHTMLにしようと思っているので す。10枚20枚ぐらいなら手作業で頑張るんですが、500枚ほどあるので(汗) でソフトも画像管理・データベースでシェアウェアも含めて探したのですが、キー をつけて検索、という機能がなかったり、HTML出力が出来なかったりで。 MS-OfficeはHTMLで出力、というのがあるので、Accsessでそういう風に作れない かと思ったのです・・が。
>193 テーブルのフィールドにOLEオブジェクトを作る。 フォームにその連結オブジェクトフレームで出来るかと。
195 :
名無しさん@そうだ選挙にいこう :02/01/27 13:52
クリックしたラベルコントロールの名前を取得したいのですが, どうしたらいいのでしょうか。 ラベルでなくてテキストだったら, Me.ActiveControl.Name で取得できるのですが,ラベルのときの方法がわからないのです。 また,一般的にコントロールをクリックしたときの,そのコントロー ル名を取得する方法がありましたら,どなたか教えてください。
196 :
名無しさん@そうだ選挙にいこう :02/01/27 13:55
>>191 さんありがとう。
VBAインプットパラメーターの参照の仕方が分からないんです。
VBA上でcmb顧客にドット打って表示されるメンバにそれらしきものがないんです。
今はcmb顧客にフォーカス移るとパラメーター入力のダイアログがでます。
このパラメターを先にVBAで設定したいと思うのですがどうもうまくいかないです。
196=188です。
パラメータと同名のコントロールを作っておいてそこにパラメータ値を つっこんでおけば、それをパラメータと誤認して結果として正常に動作 するという話をどこかで聞いたような気がしなくもない。 が、動的にSQL文を作ってロウソースに設定してやるほうが正統だと思 うし、コードも読みやすいと思う。そんなにごちゃごちゃしないと思う んだけどな。 strSQL = "SELECT ... WHERE 都道府県 =" strWhere = Me.cmb都道府県.Value strRowSource = strSQL & strWhere Me.cmb顧客.RowSource = strRowSource Me.cmb顧客.Requery (未検証)
199 :
名無しさん@そうだ選挙にいこう :02/01/27 21:30
アープサイジングーウィーザードの使い方がわかりません。 どげんして使うとですかこれ? どなたか親切な方教えてくださいまし。
200 :
名無しさん@そうだ選挙にいこう :02/01/27 21:34
accessテーブルのコンペアーの方法または、ソフトがあれば 教えてください。お願いします。
201 :
若葉 ◆MTB/PLeg :02/01/28 09:15
>>187 週末はさんで遅レスですみません。
今、確かめたところ、後者のrequeryを使う方で実現しました。
refleshだとエラーは出ませんでしたが、フォームは変化ありませんでした。
宜しければ、何か辞書代わりに使えるオススメAccess本ってありますでしょうか?
私が持ってる本は…
「Access2000による顧客管理システム」
「Access2000/97による受注出荷システムの構築」
「Access2000 VBAハンドブック」
「Access2000/97による実用システムの作り方」
「超図解…」
「できる…」
等です。
どうも途中がぬけているような本の構成でして(^^;
202 :
若葉 ◆MTB/PLeg :02/01/28 09:16
>>187 お礼の言葉が抜けておりました。
ありがとうございました。
>>198 SH さん
ありがとうがとうございます。
おっしゃるとうり、やっぱりSQL文でやってみます。
いろんなフォームでその手のコンボを使うので
ちょっとパラメータクエリを関数のように使ってみたかったんですけど
無理があるみたいですね。
もう少しパブリックモジュールとかFunctionプロシージャ辺りを
あさって効率的なコード勉強してみます。
194>> ありがとうございます。まだ出来てないけど 頑張ります(VB忘れた!←致命的)
>>190 イメージであってるよ。
img.Picture="[ファイルパス]"で、表示できると思うけど。
質問でござーます。 Access2000で住所入力支援機能(郵便番号←→住所を相互変換するやつ)使ってるんですが、 あれの郵便番号の辞書?を更新するのはどーしたらいいのでしょうか? 昨今の市町村統廃合で対応できてない住所が増えてるようですので(さいたま市とか)・・・。 ちなみにMicrosoftのダウンロードセンターでは修正ファイルらしきものは見つけられなかったです。
>>208 リンク先はIME2002用でしたが当方IME2000のため、IME2000用のアップデートを実行したところ無事に更新できました。
さいたま市でしかテストしてませんが、たぶん大丈夫でしょう。
ありがとうございました!
210 :
名無しさん@そうだ選挙にいこう :02/01/29 07:20
211 :
名無しさん@そうだ選挙にいこう :02/01/29 11:41
クエリの抽出結果に対して、連番で番号を振りたいのですが どのようにすればよいのでしょうか?
>>211 ログ検索した?
このスレの 75〜80 を読んでみ。
213 :
名無しさん@そうだ選挙にいこう :02/01/29 14:01
テーブルのデザインビューで「日付」を定型入力平____月__日の様式を 選びました。 データシートビューで日付項目は上記の形で入力されるようになってる のですが、エンターを押すと西暦で__/__/__になってしまうのですが なぜですか?何が間違ってるのでしょうか。
テーブルの中身なんてどんな形式で入っていても問題ないと思うのですが、なぜそうしないといけないのかな? 「定型入力」だから入力する時にしか反映されないと思うのですが…。
215 :
名無しさん@そうだ選挙にいこう :02/01/29 14:38
>>213 書式も設定せんと駄目だろ。
ggeemm月dd日かね、「年」は入らんのか?
216 :
名無しさん@そうだ選挙にいこう :02/01/29 15:36
>>214 和暦の方が都合がいいもので・・
>>215 あっ、ほんどだ。
gg年eemm月dd日にしたら、上手くいきました。
有難うございました。マジで。
218 :
名無しさん@そうだ選挙にいこう :02/01/29 17:38
DateAdd("yyyy",[リース期間],[導入時期]) と、 DateAdd("m",-1,[導入時期])を1つにまとめたいのですが。 [リース期間]には数値型で年数だけが入力されています。 [有効期限]=[導入時期]+(リース年数-1ヶ月)としたいんです。
あ、すいません、できました。死ぬほど初心者な質問してました。 相当疲れてるな俺。。。
Accessを覚えて、やりたいことがあるのですが、 本だけではなかなか進みません。 どなたか教えていただけませんか? 全くの素人なので、かなり覚えが悪いかもしれませんが… お願いしますm(_ _)m
221 :
名無しさん@そうだ選挙にいこう :02/01/30 01:07
access1週間の厨房です。質問したいのですが、 クエリでテーブルにある名前の抽出をしたいのですができません。 テーブルの1列に名前が入っており(950件ほど)、クエリ上で 抽出条件に [名前入力] と入れダイアログを表示させ、そこに 該当するはずの名前を入れても抽出されないのです。 どこが間違っているのでしょうか?
>>221 それだけじゃ分からん。
クエリのSQLビューをコピペしてみ。あとテーブルのデザインをもう少し詳しく。
>>220 とりあえず、やりたいことをココに書けば?
さっきからやってるんですけど全然です・・・。 SQLビューってどうやって見るのかすら分かりません。 クエリは新規作成でデザインで作ってます。 テーブルは各列に”ふりがな”、”氏名”、”誕生日”って具合で入っています。 たとえばふりがなで検索したい時に、「さとう たろう」っていてると きちんと抽出が行われるんですが、「さとう」っていれると1つも抽出 されません。 ここにその「さとうたろう」と「さとう」で始まる人を抽出できるようにしたいのです。 つまりダイアログで入れた文字を検索で使用したんです。 ちょっと説明が上手くいかないのですがどうでしょうか?
=じゃなくてlikeを使う like "*" & [名前を入力] & "*" みたいに。 SQLビューはデザインビューとかを切り替えるボタンに小さい三角が付いてるから そこを押すとドロップメニューが出るからそっから選択。 まずは入門サイトを巡るとかから始めたほーが良いよ。
あっ、出来ました。[名前を入力]を挟むわけですね。 本当にありがとうございました。SQLビューもわかりました。
>>225 >like "*" & [名前を入力] & "*"
ちなみに前方一致曖昧検索だけなら
>like [名前を入力] & "*"
で十分だ。
数万件もあったら激遅になるぞ(w
SQLの質問なんです。宜しくお願い致します。 インポートしたデータに主キーを設定していたら、どうやら重複があるらしいのです。 重複しないを検索するのはDistinctですが、 その逆(重複してるもののみ)は、どうやって検索するのでしょうか? 約10万レコードあり人力で探すのは不可能です。 (補足) 「M受注」というテーブルの「受注ID」フィールドがなぜだか重複しています。 MSDEとAPDを使用してます。 主キーがないとAccessからは編集すらできないんですがEnterpriseManagerからは 検索さえ出来たら削除できそうです。
229 :
名無しさん@そうだ選挙にいこう :02/01/30 20:54
質問です ACCESSで入力した日付を全角にして表示する方法を教えてください 例 テーブルには 2002/01/30 フォームでは 2002年1月30日
>>228 主キーとして使用する項目でグループ化させて、
レコード毎に集計させて、Where条件に >=2 を入れておけば、
同じキーが2つ以上のデータだけが抽出できる。
こんなもんでいいか?
231 :
188・228 :02/01/30 22:47
>>230 ありがとうございます。明日会社で早速やってみます。
帰宅途中にDistinctで検索>エキスポート>テーブル構造のみコピー
>インポートでいいのでは?なんて思ったのですが。
230さんの方法の方が他に応用できるし、スマートですね。
ありがとうございます。
>>229 StrConv(Format([フィールド名],"yyyy年m月d月"),4)
教えてください。 インポートの件なのですが、 データ型をYes/No型で、チェックボックス式で記入したいのですが、 インポートデータで(エクセルで)セルにYes,Noって記入していて インポートしたら、 データシートビューではYes,Noで表示されてしまいますよね。 新規でテーブルを作成したら、Yes/No型はチェックボックス形式に なるのですが・・・。 チェックボックス形式にするには、作成してるテーブルに インポートするしか手はないのですか?
234 :
名無しさん@そうだ選挙にいこう :02/01/31 11:23
超初歩的な質問ですが教えて下さい。 まるっきり同じ属性を持つ2つの表(両リーグのチーム総合投手成績)があるんですが、統合が上手く行きません。 ユニオンクエリーで失敗しているのですが、他に良い方法はありませんでしょうか?
235 :
名無しさん@そうだ選挙にいこう :02/01/31 17:02
超初歩的な質問ですが教えて下さい。 UNIONコマンドで統合したデータベースのレコードに順位を付ける方法ってありますか?
236 :
名無しさん@そうだ選挙にいこう :02/01/31 17:34
>>234 うまくいかないだけじゃわからんよ。
エラーになるの?結果が予想と違うの?
失敗している根拠は何?
237 :
234=235 :02/01/31 17:44
[演算子]と[FROMより後]にエラーがあったのですが、それは片付きました。
今聞きたいのは
>>235 の事なのです。統合にUNIONを使用したのですが、統合した後のレコードに順位をつける方法
を教えていただけますか?
>>232 できました。
どうもありがとうございます
239 :
名無しさん@そうだ選挙にいこう :02/01/31 18:08
>>233 Access の Yes/No って内部的には数値 -1/0 を持ってるだけだよ。
新規作成したテーブルの Yes/No型を数値型に変更して表示してみな。
内部データをそのまま表示するとユーザが理解できないから、
わかりやすい形に変換してるだけ。
Excel の Yes/No を -1/0 に変更してから数値型でインポートして、
Yes/No型に変えればいいだろ。
240 :
名無しさん@そうだ選挙にいこう :02/01/31 18:11
>>237 UNION の結果は ORDER BY 指定できる。
順位を数値で見たければ、初期値 1 で直前の値に +1 するような
計算フィールドを入れればいいんじゃないの。
241 :
名無しさん@そうだ選挙にいこう :02/02/01 00:02
初歩的な質問だとは思うんですが、 テーブルに生年月日(****/**/**)で入れていて指定した月の人だけを クエリで抽出したいんですが条件式はどのように書けばいいのでしょうか? 何月生まれを抽出しますか?と聞かせて、そこで月を入力させ、 その月の人を抽出したいのです。
242 :
名無しさん@そうだ選挙にいこう :02/02/01 01:31
>>241 演算フィールドに、Month([生年月日のフィールド])
抽出条件に、[何月生まれを抽出しますか?]
ほんと初心者でスミマセン。 演算フィールドとはどこのことを指すのでしょうか? テーブルでデータ型はちゃんと日付・時刻型にしてあります。 クエリをデザインで作っているのですが、抽出条件に[何月?] を入れるだけだと月を入れて決定するとエラーが出てしまいます。
クエリの【フィールド】にテーブルのフィールドから 新たなモノをつくるのです。 月:Month([生年月日のフィールド]) とでもして、クエリの結果を表示してみたらわかります。 そうすれば抽出条件も自ずとわかるでしょう。
>>244 すみません。 関連質問
フイールド [フリガナ]で[抽出名は?]と言うふうに入れて
フォームで表示出来るようにするには、どうしたらいいでしょうか。
教えて下さい。
>>245 [抽出名は?]で、抽出できるクエリーを作ってその
クエリーをレコードソースにしてフォームを作成すればOK
>>244 ありがとう。 出来ました。
ついでですが。 これでは 全部入力しなければだめですね。
で 例えば始めがアとか、イトウとかが中に有れば索引出来ると、
するにはどうしたらいいんでしょうか。 よろしく
>>248 Like [抽出名は?] & "*"
でOK
>>245 礼の前に過去ログぐらい見ろ
ほとんど同じ質問が少し前にあるだろうが。
252 :
名無しさん@そうだ選挙にいこう :02/02/02 03:03
Access97のmdbをODBC経由で操作しようと考えています。 それで、mdb接続時に使うデータソース名の代わりに、 ファイルの絶対パス名を使って直接接続できないでしょうか。 数十人のユーザーにプログラムを配る予定なので、 コンパネからのデータソース登録が面倒なのです・・。 ODBCは絶対条件です。
解決しました(w
>254 なんで?
>>252 どうしてODBC接続にこだわるのか、よかったら教えてください。
>>256 すでにモノはODBCで作ってあるからね。小回りが効いて良いかと。
問題にしてるのはデータソース登録の部分だけだったんで。
Googleで検索したらなんとか見つかりました。
フォームの最下部に出てくるレコードカウント欄を消すには?
>なるほどね。了解です。 了解するなよ(w mdbをodbcで接続すること自体、かなりタコなつくりだ 何の理由にもならん(w
261 :
名無しさん@そうだ選挙にいこう :02/02/04 18:50
レポートのヘッダに 出力した日にちをつけるには =Now() ページ数をつけるには =[Page] & "/" & [Pages] & " ページ" なんてカンジでできるじゃないですか? 同じようにして、システムからレポート名を引っ張ってきて ヘッダに印刷させたいのですが、なんかいい方法ないでしょうか?
262 :
名無しさん@そうだ選挙にいこう :02/02/04 20:12
Accessで、すべてのオブジェクト(テーブル、クエリーetc、VBAのモジュールも)を 別の新規.mdbにコピーするコードってどこかに落ちてない? 参考になるコードでもいい。 (Access2002,Windows2000)
263 :
名無しさん@そうだ選挙にいこう :02/02/04 20:23
現在のページを表示するPage関数(?)みたいに、現在のレコード番号を
表示する関数ってないの?
単票形式ならPageで良いのだけど、表形式だと不都合が・・・。
やっぱり
>>77 みたいな方法しか無いのかな。
RunningSum/集計実行 プロパティ あたりで検索 もしくはVBAでフォーマット時にPrivate変数に1足していく
>>264 RunningSumで上手くいきました。
サンクスコ
Ctrl+Fで表示されるような、検索ウィンドウをカスタマイズしたものを作りたいのですが どこかに良いお手本はないでしょうか?
フォームの最下部に出てくるレコードカウント欄を消すには?
>>244 さん 又は251さん(には同じ質問すぐ前にあって、よー見ろと怒られました
ほんとでした、失礼しました)
教えて下さい。Countしたいのです。
同窓名簿で、[住所区分] 1=九州地区 2=中国地区 3=関西地区 ・・・・としています。
レポートで 地区カウントしたいのです。
251さん、関連が12 13頃にあるようなのですが、よくわかりません。
よろしくお願いします。
>259 フォームのプロパティかえるだけ。移動ボタンってのがあるから、 それ「いいえ」にしとく。
同窓会名簿のテーブルを元にクエリを作る。 住所区分と主キーにしているフィールドの2つを選ぶ。 [Σ](集計)をクリック。 住所区分はグループ化、主キーのフィールドをカウントにする。
>>270 早速の返事、ありがとう。
やってみます。
再度質問。
>>270 住所区分集計、クエリーはわかりました。
レポートのレポートフッターで
[住所区分] 1=九州地区 2=中国地区 3=関西地区をカウントしたいんです。
全体カウントですと、カウントテキストボックス コントロールソース欄 =Count(*)で出力されるのです。
で ここに =Count([住所区分]=1)とかやっていますが、出てこないのです。
273 :
名無しさん@そうだ選挙にいこう :02/02/05 15:40
超初心者の質問で申し訳ございません。 すでに作成してある2万件のデータ(テーブル)があります。 そこに「日付」という項目を追加しました。 そこには「2002/2/5」という日付を入れたいのです。全部に。 新しいレコードに自動的に入れる方法はわかったのですが、 既存のレコード全てに同じデータを入れる方法がわかりません。 どなたかご教示くださればありがたいです。よろしくお願いいたします。 ああ、アクセス使いこなすまでいったいどのぐらいかかるのだろう・・(涙)
>>273 クエリー
[日付]選ぶ
更新クエリー選択、レコード更新欄
#2002/2/5# で
びっくりマーク!押す その前にテーブルはコピーしてやってほうが
いいですよ。
私は272で教授依頼しているのですが 分る人居ませんか?
>273 暇なんで。手取り足取り。 まず、クエリの新規作成を選択して、デザインビューを選択しる。 で、目的のテーブル選択しる。 メニューバーに クエリー っちゅうんがあるんで、そっから、 「更新クエリ」ってのを選択。すると、クエリのデザイン画面が 多少かわるはず。 テーブルから該当する「日付」ってフィールドを選択して、 「レコードの更新」っちゅう行があるんで、そこに、 "2002/2/5" とでも書いて、メニューバーのクエリから実行する。 日付フィールドの持ち方次第で応用させてな。 もちろん、データの更新に関わる処理なんで、必ずバックアップとってから 実行してね。
274さん 早速ありがとうございます! 更新クエリー?どれのこと・・・?と思いながら やってみたらできました! こんな機能があることすら知らなかったです。ありがとうございました!
>245 レスが被った記念に。 =Dcount("[住所区分]","テーブル名","[住所区分]=1") じゃダメなん? あと、住所区分ってテキスト型?数値型?
あ、入れ違いに。 276さんは274さんでしょうか? 丁寧なお答えありがとうございます! ついでといえばなんなんですが、 アクセスを自分で勉強するにあたっておすすめのテキストが あればお教えくださいませ。 「操作方法」というより「何ができるのか」「テーブルとクエリの構築のしかた」 みたいなことがわかりやすく書いてあるのが理想なのですが・・・。 今エクセルで作っているものでアクセスに移行したいものがいくつか あるんですが、なんかものすごーく基本的な「考え方」がまだ 身についていない気がします。 ひたすら実際に作業してみるしかないんでしょうか・・・。
280 :
名無しさん@そうだ選挙にいこう :02/02/05 16:22
Access97ユーザーです。 テーブルの1セル(Accessでこういうのだろうか?)に入る文字数は、 最大255文字(256でしかか)のはずですが、2000以上のバージョンでは この数字は増えていますか?
>>278 ありがとう。 それでもやってみたんですがねー
テーブル名、間違えたかもしれません 尚 数値型です
>>273 とにかくひたすらやらなければなりませんね。
私など、書棚に1列20冊位ありますが、まだ SQL VBAわかりませんね。
282 :
名無しさん@そうだ選挙にいこう :02/02/05 16:32
>>280 テキスト型のことかな
だとすると同じ255文字です
メモ型なら65,535文字まで
283 :
名無しさん@そうだ選挙にいこう :02/02/05 16:33
>>280 テキスト型
最大で 255 文字まで
メモ型
最大で 65,536 文字まで
>>282 だぶったみたい。
非常につまらない質問なのですが
ラベルとテキストボックスってグループ化もされてないのに
本体と一緒に相対的に動きますよね。
ラベルだけ何個か選択して「上辺を整える」配置などをしたいのですが
テキストボックスも一緒に動いてしまうんです。
プロパティーリストでもそれらしき項目ないのですが、自動作成される
ラベルは一旦削除して新たに作るしかないですか?
>>278 さん ありがとう
出来ました、テーブル名、住所禄のろくが碌でした。お恥ずかしい。
ところが、その前に男女区分をしており、区分ヘッダーで2つにわかれますよねー
ここにすべて合計数が出てしまうのです。
ついでといったらなんですが、教えてください。
どうしてでしょう。
286 :
名無しさん@そうだ選挙にいこう :02/02/05 17:30
>>284 配置−上のことですよね?
Accsee2000ですが、そんなことないですよ。
ラベルだけの選択が出来てないのでは?
整えたときは相対的な動きじゃないですよね?
287 :
◆SQLyndSs :02/02/05 17:38
>>285 Dcountは集計する関数だから。
=Dcount("[住所区分]","テーブル名","[住所区分]=1 and 男女区分=1")
でOK
288 :
名無しさん@そうだ選挙にいこう :02/02/05 18:02
各種コントロールのプロパティ名称を英語で何と呼んでいるか わかる方法ってあるか?
>288 VBAでプロパティの参照とか変更するときの綴りを知りたいってことでいいのかな? ヘルプで検索すればでてこないかな?「高さ」とかで。
とおもったらVBAのヘルプじゃあ「高さ」で検索したら「Width プロパティ」は 出てくるけど「Height プロパティ」はでてこない。ぬ〜んへぼヘルプめ。 Accessの方のヘルプなら「"Height/高さ"、"Width/幅" プロパティの使用例」 ってでたけど。
>>286 AC2002なんですよ。一つずつは動かせるのですが、
複数選択で書式>配置を使うと一緒に動きます。
>>288 ,289
プロパティーリストの対応項目にカーソル移動してF1を押すと早いよ。
もちろん「いるか」は切って。
>288 プロパティ設定する項目でF1キー押せばヘルプが立ち上げって、 そのプロパティのスペルがわかる。あとは英語辞書みながら地道 にできるんじゃね?つーかほとんどベタ読みしてますが。 >284 >286 に加えてAc97でも確認したけど、普通にできたりするよ? やっぱ選択が甘いんじゃないかね。 ちゅうかね、Access触って2年くらいなるけど、最近、SHIFTを押しながら 複数コントロールの選択ができることを知った。Ctrlでできんかったから諦めてた 自分に鬱氏。
293 :
名無しさん@そうだ選挙にいこう :02/02/05 21:55
厨な質問で申し訳ないのですが、 リンクテーブルってあるじゃないですか。 あれで「どこのテーブルにリンクされているか」ていう 情報は取得できないもんですか? ファイル名やパスとか。。。
294 :
名無しさん@そうだ選挙にいこう :02/02/06 09:49
mdbファイルを最適化しようと思ったら、 TempMsysAccessObjects はすでに存在しています。 と出てらちがあかない。どうする? (名前をいろいろ変えてもだめなんです)
295 :
◆SQLyndSs :02/02/06 09:59
>>293 こんな大層な事する必要ないかもも知れないけど、
これしか方法が思いつかない…。
Public Function sTableLinkName(sTableName As String) As String
Dim tdf As TableDef
For Each tdf In CurrentDb.TableDefs
If tdf.Name = sTName Then
sTableLinkName = tdf.Connect
Exit For
End If
Next tdf
End Function
あとは、返ってきた値を分割してください。
>>287 ◆SQLyndSs
285です。
ありがとうございました。
遅くなりました。 やって見ます。
>>287 ◆SQLyndSs
再度お願いします。確かに印刷されました。ありがとう。
男女区分=1女子 2男子となっております。で
レポート男女区分フッタで定義するわけですね。
男女区分1 と 2 に分け印刷されますが ご教授頂いた関数でも
1と2に同じ数字が(1の数字が2にも出る) 印刷されるのです。 よろしくお願いします。
298 :
◆SQLyndSs :02/02/06 10:28
>>297 確認しますが、デバッグウィンドウで
? Dcount("[住所区分]","テーブル名","[住所区分]=1 and [男女区分]=1")
と
? Dcount("[住所区分]","テーブル名","[住所区分]=1 and [男女区分]=2")
では違う数字がでますでしょうか。
また、この関数でカウントされる件数はどちらかはあっているでしょうか。
>>287 ◆SQLyndSs
早速ありがとう。
1と2は違っております。(数字は正確です)
で レポートフッターで合計させますと
Dcount("[住所区分]","テーブル名","[住所区分]=1) で
合計数は合います。
>>293 GUIでならリンクテーブルを右クリックでリンクテーブルマネジャーで見れる。
VBは
>>295 分 さん。
用途によるけどVBでリンク先変えるならリンクテーブルを複数作って
切り替えた方が早いかも?
>>286 >>292 「ラベルだけの選択」というのが一つなら可能なのですが
複数のラベルを選択するのが「Shift」でも「マウスでドラッグ」でも
無理なのですが皆さんどうやっているのですか?
具体的には
ワンクリック、本体とラベルが選択される(勝手に)
ラベルにポインタ合わせると指になるのでラベルのみが選択できる。
>>300 自己レス
すいません。
マウスドラッグで選択、配置コマンドできました。
お騒がせしました。
でもマウスドラッグで選択、方向キーで微妙に移動はできないです。
本体も一緒についてきます。
でも複数個のコントロールとラベル使えばなんとか配置コマンドでも
キレイに配置できるので、とりあえず解決しました。
ありがとうございました。
(X) VBは
>>295 分 さん。
(O) VBは
>>295 さんを参照。
302 :
◆SQLyndSs :02/02/06 11:23
>>299 ということは、レポートの男女区分フッタにこの関数を
入れた時のみ数字が合わないという解釈でいいですか?
そうなると・・・、どうしてだろう…(爆)
>>302 ◆SQLyndSs
度々ありがとう。
私はよくわかりませんが、男女区分フッターで [男女区分]=1 と 2を
定義しなければ と 思うのですが・・・
しようがないので、最後合計欄、レポートフッターで印刷させます。
ありがとうございました。
ちょっと仕事忙しくなりましたので。
また 見ておりますので、もしいい方法がありましたら、教えてください。
勝手を言いすみません。
AccessXP使ってる奴ってどれぐらいいるんだ・・・ 漏れのソフトのネットでのDL率から推察すると、 Access2000 60% Access97 30% AccessXp 5% Access95/2.0等 5% ぐらいの印象なのだが(W
305 :
名無しさん@そうだ選挙にいこう :02/02/06 13:53
ACCESSで、在書管理のシステムを作っているのですが 最初のメインメニューから、各フォーム(登録画面など)に行く前に パスワードを入力させるようにしたいんです。 要するに、パスワードを入力しないと どのフォームもでてこないようにしたいんです。 VBAでそれらしきものを作ったのですが 打ち込んだパスワードがそのまま出てきます。 やはり、****みたいなのがでてこないと、意味が無いので どうすれば言いか悩んでます。 パスワードを入力させる画面もフォームにして見ようかと思うのですが 全然わかりません。 なにか、良い方法は無いでしょうか?
306 :
名無しさん@そうだ選挙にいこう :02/02/06 14:14
>>305 テキストボックスのプロパティの[定型入力]に パスワード 又は Password と入れる。
307 :
名無しさん@そうだ選挙にいこう :02/02/06 19:37
>>295 すばらしい!!早速使わせていただきました。
ありがとうございました。
>>300 >GUIでならリンクテーブルを右クリックでリンクテーブルマネジャーで見れる。
それは知らなんだ。試してみます。ありがとうございました。
308 :
◆SQLyndSs :02/02/06 20:27
>>307 すいません。一カ所訂正
If tdf.Name = sTName Then
↓
If tdf.Name = sTableName Then
変数適当に付けてることがバレバレ…。
>>308 適宜修正して使用しましたのでお気になさらず
リレーショナルデータベースと カード型データベースの違いを教えてください。 accessとファイルメーカーが比較されそうですけど、 メリット、デメリットなどしりたいです。
会社でAccessを使って生産管理のシステムを作りました。 mdbファイルはサーバーに置いて何人かで使っています。 「ディスクまたはネットワークのエラーです」 っていうエラーが結構頻繁に発生してしまいます。 このエラーを起こさなくさせるにはどうしたらいいのでしょうか?
312 :
名無しさん@そうだ選挙にいこう :02/02/07 00:04
住所録をアクセスで作ってるんですけど、登録フォームで入力する時に 名前、電話番号、住所、郵便番号の4つが入れてないと 追加、更新および削除できないようにするために 何か方法はありますか?
313 :
名無しさん@そうだ選挙にいこう :02/02/07 01:29
>>311 アクセスって一つのテーブルを同時に複数で更新すると
最悪データベースが破壊されるんじゃなかったっけ?
にしても生産管理システムを構築したとは凄いですね!
受注ー生産計画ー部材手配ー生産ー出荷の流れと
各倉庫の入出庫等を網羅されているのでしょうか?
315 :
89454 :02/02/07 02:29
、-.、._ .__
`ヽ、"'' - ._ _,;:-‐ ''"/
\ ~'' ー ,,__ _ ,,.:::-‐ ''" "~ /
ヽ、 , ヾ'ヽ、__ ./'i~ /
\ |! 丶、\"ーェ''7 / / _..,,ノ
`ヽi`ー-;,___"''ゝー<''~ ,,、-'"~i-ー''"~
、_冫=-:::::::::::~"''"⌒ ̄ ァヽ,.へ,
`ー,-''~::::/::::::: ::::::::::::`>'´,/、丶
/ /:ァ'::::::::,i::::::、:..::: :::....ヽィ'\ノ::::. \
、_, -/ .:ァ' .:シ ::...::::/!| ::::::|'、::::l__::i:::::;i :::::}:::::: `ヽ、,____,
、_ニ=‐{ .:ノ! i, .:{ァ'"メ.l{l ::::| 'l''"}::`|.:::::} :::ト、:: "''==ニ
. `ー-/{./ { |:{.:{ヾツ_..,l,{....:::|. |' `ヽハ:ノ:::l::::|:::ヽ、 `ヾ、
ァ' /'.リ l :l|::ヾ〉.,ィ⌒i `ー'' ' `‐リ::ノ::ノ:::::i、ヽ 丶ト、
. // .:/ .:ハ|:iハi、'、ヾ゚ツ ''"¨ヾ,シ:/|:::: ハ:::}:..、.:: ::l )
// / .:,' .:/:l .l:;:;リ}::} ひ、、 ` 、、-'ソ /::'ノ'ハ::::}::::}:::ノリ
リ { .:/! :{ヽト'^^'リ :` 、_⊂ニつ '' lハ|ノ:ノ_ V ル'/
l. ::{ `ヾ ‘ .-ーレルハ''lー-‐'"|リルy⌒~ /
. ヽ| /´ /#ハ ,.:-‐l#l~ /
{ ,: ./#/ ' .|.#|.. ..ァ'
l .:i/#/ |#.{. ,;'
l ァ'-‐‐-:::;',.__ l.#|/
i ./ ' ~⌒`ヾ、}'
| .{ :::...... }
j .ヾ、_::::::,,:::::::-‐ .....::ノ
l {=-‐-::;;_ ュ `::;;__;;;シ
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
http://www.puchiwara.com/hacking/ やっぱコレだねェ〜♪
>会社でAccessを使って生産管理のシステムを作りました。 >mdbファイルはサーバーに置いて何人かで使っています。 何らかのフォロー入れるか、ネタだと言ってください。 金がないならせめてMSDE入れた方がイイ。 MDB(Jet)で何とかしようとするなら、排他制御をどう 考えてるのか聞かせてほしい。 >313 フォーム開きながらモジュールでソーステーブルを更新したりすると 壊れることがある。テーブルを複数で開けるのは論外だが、 独りで開けるときも注意した方がいい。
>>260 >mdbをodbcで接続すること自体、かなりタコなつくりだ
じゃあ何で繋げればいいんだ?
すでにOracleにも同じロジック適用してるし、
作りが単純だから便利なんだよ。
319 :
名無しさん@そうだ選挙にいこう :02/02/08 00:56
フォームでコントロールラベルを 均等割付したら右側の文字が枠からはみ出してしまいます。 フォントを小さくしても同じです。 access2000なのですが・・・。なぜですか?
>>252 >じゃあ何で繋げればいいんだ?
やっぱタコだな(藁
答えはJetに決まってるだろ
mdb配布するのにODBC使うなんて、
正気の沙汰ではないな(藁
321 :
名無しさん@そうだ選挙にいこう :02/02/08 09:24
>>319 A c c e s s 2 0 0 0 の バ グ 。
文 字 の 間 に ス ペ ー ス を 入 れ て み 。
教えてください。 1.フォームやレポートのデザインを開く時、 開くまでに異常に時間がかかる(5分くらい)ことがあります。 これはなんなんでしょう? 2.テーブルやクエリをExcelにエクスポートして、 そのExcelを開いてみると、フォントが変な風になってしまいます。 書式設定でフォントを変えれば元に戻りますが、 原因がわからないので、何かご存知の方、ご教授願います。
323 :
名無しさん@そうだ選挙にいこう :02/02/08 17:13
>312 レコード移動時、レコード削除時のイベントで、4つのフィールドの値を チェック。どれかが空白(Null)だったら Cancel = True でどうよ。
324 :
名無しさん@そうだ選挙にいこう :02/02/08 21:13
すいません、CDってどういう意味ですか? コンパクト・ディスクの事ではないありません・・・ というのは、ACCESS等のデータベース関連で、 よく「得意先CD」とか言ったりしますよね? いろいろしらう゛ぇたのですが、どうしても分かりません。 よろしくお願いしまうす。
得意先コード ↓ 得意先CODE ↓ 得意先CD
326 :
名無しさん@そうだ選挙にいこう :02/02/08 21:20
コード(CODE)の略
327 :
名無しさん@そうだ選挙にいこう :02/02/08 21:21
>>325 マジっすか。
「コード」だったのか…。
謎が解けました。ありがとう!
ネタフリじゃなかったのか
>>321 ありがとうございました。
もうひとつ質問です。
あいまい検索のときにワイルドカードを使うのですが、
「*会社」って入力したときはLike"*会社"ってでるのですが、
「??会社」って入力したときはエラーがでます。
?ではじまるときはLikeから入力しないといけないのですか?
それはなぜなのですか??
教えてください。
>>329 [](例えば「会社[A-C]」で「会社A」「会社B」「会社C」にマッチ)も同じく。
この場合の理由は、[]はパラメータクエリなど他の用途にも使う記号だから、
下手にLikeを付けられちゃ、他の用途だった時に困るため。
?がLikeが付いて展開されない理由はわからん・・・
いずれにしろ、「*会社」でLikeを付けてくれる機能はあくまでも親切機能だから、
?とか[]の場合は手動でLikeを付けなくてはダメらしい。
>323 オイオイ。それをやるなら AfterUpdate(更新前) だろ? レコード移動にCancel=Trueってきかんとちゃう? >322 AccessっちゅうかWin環境寄りな問題だと思うんで、良い 回答は得られないと思う。
マジ鬱。 >AfterUpdate(更新前) だろ ↓ Before〜、です。えらそーなこといってすまん。 回線切って首吊って逝ってくる。
金融系では CD=キャッシュディスペンサーでは?
337 :
名無しさん@そうだ選挙にいこう :02/02/09 22:50
>>333 ODBCデータソースに接続する時とか、そのページにあるみたいにODBCDirectを使う時はODBC呼んでるけど、
普通にMDBファイル読む時は使ってないと思われ。
だって普通にMDBファイル読む時はコンパネのODBC設定要らんし。
>>320 >>336 なんかオイオイ、とか駄目だとか、そういうレスばかりなのは・・
具体的になにが駄目なのか言ってくれないとさっぱりわからないんですが。
今のところちゃんと動いてるんで、これ以上変更する予定は
無いんだけど、こういうこと言われると不安じゃないですか。
>>337 >だって普通にMDBファイル読む時はコンパネのODBC設定要らんし。
ODBCのDSNは元々プログラム側で動的に設定/解除できるんで、
コンパネ開いての設定は必要ないみたいですよ?
(動的に設定/解除可能だと知ったのは、このスレに書きこんだ後でしたが)
というか、「普通にMDBファイル読む」ってどの事言ってるんですか?
JetがODBC呼んでるんじゃなくて、ODBCがJet呼んでんだろ? スタンドアロンでMDB扱う場合は、あえてODBCなんて使わないよ。 Mdb同士でネット越しで使うのであれば、ODBCダイレクト使うことで少しは意味がある。 ローカル側でどうしてもクエリーを発行したくない場合とかね。 でも普通はMdb同士でODBC接続なんて使わん。
もひとつ補足。 もし、将来的なアップサイジングを目的とした汎用的な作りを考えているから というのであれば、それも検討違い。 そうであれば、むしろODBCではなく、OLE-DBを使ってADOでプログラミングすべき。
342 :
名無しさん@そうだ選挙にいこう :02/02/10 16:59
ACCESS2002(OfficeXP)でも ACCESS2000から登場した「ACCESSプロジェクトファイル(.adp)」は 作成できるのでしょうか?
>>342 できるよ。完全互換かどうかは未検証だけど。
344 :
名無しさん@そうだ選挙にいこう :02/02/10 21:00
パスワードがかかったアクセスのデータベースファイルを開く方法って ありますか? 友人がパスワード忘れちゃって相談されてるんですが。
where条件をつかって条件を抽出する方法と、 普通にパラメータクエリを使って条件を抽出する方法の 違いを教えてください。
質問の意味がわからんに訂正。 方法の違いって何よ?
where条件を使わなくても抽出できるのに わざわざwhere条件を使う理由がわからない って意味です
>>348 君のいう「Where条件を使わない抽出法」っていうのが
「パラメータクエリを使う」っていいたいのか?
やっぱり意味がわからん。
SQLってしってる?Where条件はどこで使おうとしてるの?
350 :
名無しさん@そうだ選挙にいこう :02/02/11 01:16
>>349 例えば、月ごとの売上の集計を行いたいときに、
集計クエリを使用して絞り込みする場合は
where条件を使いますよね?
で、もうひとつのやり方として
month関数を使って、パラメータクエリで抽出すれば
合計はでますよね?
SQLではwhere...group byとwhere...order byの違いなので
これは、集計クエリを使用したときには
where条件しか使えないのでそういう式になるという
理解でよろしいのでしょうか?
>>350 君のいってる「Where条件」は集計のところにでてくるやつのこと?
あれは集計の方法で抽出条件を入れた場合にはWhere条件にする
ってことになってるんだけど。
パラメータクエリは条件を入力できるクエリってこと。
この二つは比べるもんでもないと思うんだけど。
月ごとの集計を行いたいなら月フィールドをグループ化するだけでいいじゃないの?
(月フィールドがないならMonth関数で作れ)
>>351 わかりました。
ありがとうございました。
353 :
名無しさん@そうだ選挙にいこう :02/02/11 22:34
アクセス難しいな・・・ 3日前から日経PC読んで頑張ってるんだけど全然わからない。
355 :
名無しさん@そうだ選挙にいこう :02/02/12 01:33
アクセスで蔵書の管理できますか? 図書館にあるような蔵書カードを作るのが理想。 べつにアクセスでなくてもいいんだけど..... いいやり方(ソフト)を教えてください。
>>355 できるよ。
アクセスじゃなくてもいいと思うけど、特にこれっていうのはない。
品目コード 品名 使用部材コード 使用部材名 と4つのフィールドがあって、1レコードは製品またはその使用部材。 で品目コードで絞り込めば製品名とそれに使われる部材がわかる、という のを作りたいのです。 元となる一覧テーブルはすでにあるのですが、クエリを開けると品目コード入力欄が 出て、品目コードを入れると、自動的に絞り込みが行われるにはどうすればよいのでしょう?
358 :
名無しさん@そうだ選挙にいこう :02/02/12 02:16
>>356 詳しく教えてくらさい。
蔵書カードが作りたいのね。
>>357 品目コードを入力して・・・というのはパラメータクエリでできる。
>>358 何を詳しく?
テーブル構造からすべてを説明しろと?
普通にテーブル作ってレポートつくれば?
>357 動作確認しとらんから、動かんでもおこらんでな。 Sub ItteYoSi() Dim HAXA As String Dim SINE As String Dim AHO As QueryDef Dim UNKO As RecordSet For Each AHO In CurrentDB.QueryDefs If AHO.NAME="GIKO" Then DoCmd.DeleteObject acQuery,"GIKO" End If Next HAXA = InputBox("品目コードを入力してください・・てゆーか入力しろゴラァ!") If HAXA="" Then MsgBox("入力しろよゴラァ!") Exit Sub End If SINE="SELECT * FROM [一覧テーブル] WHERE [品目コード]='" & HAXA & "'" Set AHO=CurrentDB.CreateQueryDef(SINE,"GIKO") Set UNKO=CurrentDB.OpenRecordSet("GIKO") If UNKO.EOF=False Then Docmd.OpenQuery "GIKO" Set UNKO=Nothing Set AHO=Nothing Exit Sub Else Msgbox("該当レコードがみつかんねーよ、タコ!回線切って首吊って氏ねよ") Set UNKO=Nothing Set AHO=Nothing Exit Sub End If End Sub モジュールにコピペ一発で逝けるハズです。あとはマクロなんかで 呼び出して使ってみてください。 変数名とメッセージに改善の余地があるんで、そのへんは頑張ってください。
>>340 >>341 のカキコは自分だ。
何も血迷ったか、名前を320にしてしまった、320殿すまん。
お世話になります。 ◆SQLyndSsさん、またはどなたか教えて下さい。 バージョンは2000ですが。 フォームで 書式 - 条件付き書式で [区分]=9の時[氏名]を赤表示させたいのですが、どのようにしたらよいか 教えて下さい。よろしく。
>>336 影武者君かと思った
でもまぁ、、ほぼ漏れの言いたいことと同じだったんで
静観してたけど(w
タコ君消えてしまったね(w
フォームにMicrosoft Web Browserを使ってwebページを表示したのですが、 現在ページのURLをテキストボックスに表示したいです。 あと、webページの「戻る」・「進む」ボタンも作りたいです。 現在は SendKeys "%{LEFT}" などとやっています。 妙な文章ですみませんが教えてください。
365 :
名無しさん@そうだ選挙にいこう :02/02/12 19:55
>>359 ありがとうございます。
クエリの抽出条件に[品目コードを入力してください]と入れて保存することで
クエリオープン時に入力ボックスを表示することが出来ました。
これを「パラメータクエリ」というんでしょうか?
>>360 こちらはVBAを使用した方法ですね。ありがとうございます。
実行したところ、
Set AHO = CurrentDb.CreateQueryDef(SINE, "GIKO")
のところで
「有効なパラメータやエイリアス名になっているか、無効な文字や区切り記号が
含まれていないか、または名前が長すぎないかを確認してください。(Error 3125)」
とエラーを出して止まってしまいます。テーブル名もフィールド名も合ってるはずなのに??
366 :
名無しさん@そうだ選挙にいこう :02/02/12 20:00
すみません。過去ログ読んだのですがよくわからなくて・・・。 コントロールウィザードを使わない状態で、 コンボボックスで 例えば社員IDと社員名を表示させたときに 社員名は違うテキストボックスに挿入したいときには どうすればいいのでしょうか? ウィザードを使えばできるのですが 使わない状態でも作れるのでしょうか? 初心者なのでVBAを使わないやり方を教えてください。 よろしくお願いします。
367 :
名無しさん@そうだ選挙にいこう :02/02/12 20:54
メーカー名(IBM、NEC etc・・・)と種類(デスクトップ、ノート)の各コンボボックスで検索画面作ったのですが 種類を再クエリでマクロ処理しています。 で、メーカ選択してデスクを選択すると表示されるのですが、全メーカのデスクを表示させたり、IBMの全種類を表示させるにはどうしたら良いでしょうか?
>>365 SQLが間違ってるだけだろ
厨房質問する前にそれぐらい勉強しろ。
>367 コンボボックスに""の行を追加 クエリの抽出条件を=じゃなくてlikeにするじゃダメ?
370 :
名無しさん@そうだ選挙にいこう :02/02/12 23:11
>>368 質問するときにわざわざ「厨」と自称しましたが何か?
>SQLが間違ってるだけだろ
はっきりいえばそのSQLが何かすら知りません。。。
なんちゃらQueryLanguageなのだろうけど。
「CurrentDB.CreateQueryDef(SINE,"GIKO") 」の部分かな?
371 :
368ではないが :02/02/13 00:26
>>371 ヽ(`Д´)ノ ナニヲー!!これからアクセス始めようとしてんのに
最初はみんな厨じゃないかー
わからないところにカーソル持ってってF1押せ。 もっとAccess触ってからあらためて質問しろ。
374 :
名無しさん@そうだ選挙にいこう :02/02/13 02:00
あんま、初心者をイジメんなよ... 368の指摘も間違っているぞ。 SQL文じゃなくてCreateQueryDefの引数の順番が違っているんだよ Set AHO=CurrentDB.CreateQueryDef(SINE,"GIKO") → Set AHO=CurrentDB.CreateQueryDef("GIKO",SINE) でも、373の指摘のようにまずHELPで検索する習慣を忘れずにね。 他の掲示板だと「Help引かない教えてクン」は無視される。 2Chでは相手してくれるだけありがたいと思わないと。
>>374 ぐは!厨な指摘をしてしまった(鬱
逝ってきます
>365 あ、わりー。悪気はマジないんで許してな。頼むから、変数名と メッセージは別のにして(笑 >374 補完サンクスコ。 そもそも、こんなまどろっこしいことしないで、手動でクエリー作って Docmd.OpenQuery やった方が早いし、抽出の度にDeleteしてたらそのうち ゴミ溜まってDB壊す原因にもなりかねんな。 >372 けだし名言。言いたい事はわかるけど、教えられたことをHelpで調べないで 何物かわからないシステムを走らせているって不気味じゃないっすか?
>>372 で、チミは2ちゃんねるにナニを期待してるのかい?
Access厨が集まる板なんて星の数ほどあるだろうに...
わざわざ煽られに来るようなもんだろ。
>>377 2chは煽りも多いが、厨房の数も他の比じゃないしな。
当然教える君も多い。とくにこの板みたいなマタ-リ系は。
379 :
名無しさん@そうだ選挙にいこう :02/02/13 21:08
質問で〜す。 コンボボックスを2つ作って [0]〜[2]万円までとかって指定するときちんと表示されるようなのを考えているのですが・・・ むずかしいです。
また厨房が現れたよ。 「きちんと表示」って何だよ!?
答える気が無いのなら無視すれば良いのに。。 下らない優越感に浸ってるる小市民?
>>381 答える気が無いわけではない。
質問の意味がわからないってことをいいたいだけ。
質問の内容があまりにひどすぎる、日本語になっていない。
>>382 381じゃないけど、
最近、答えようのない漠然とした質問が多いですね
384 :
名無しさん@そうだ選挙にいこう :02/02/14 03:42
アクセスを学習するのに良い教材、本を教えて下さい☆
>381 いや、さすがに >379 は質問の意図がわかりにくいから 答えにくいよ。 良いレスには良い質問。コレ常識。 コンボAには金額の下限を、コンボBには金額の上限を表示して、 それをテキストボックスで 0〜20000円 って表示させたい、 みたいな内容のように思えるが。
>>380-383 文句だけだと殺伐とするから、
ちょっとでも情報を出すか笑いをとるかしたほうが良いと思われ。
>>379 クエリーが
Between Forms![ふぉーむ名]![万こんぼ1] And Forms![ふぉーむ名]![万こんぼ2]
になるようもがいてみれ。
ねえ、きちんと教えて。 フォームで 書式 条件付き書式で [区分] 9 と有った時 [氏名] 赤 表示したいのです。 条件(1)に式を入れるのではと思うのですが。 どなたか、式を、きちんと教えて下さい。
>>388 はいはい。
ヘルプをきちんと調べて、不明点を聞いてくださいね。
390 :
名無しさん@そうだ選挙にいこう :02/02/14 14:20
>388
おまえホンモンの >245 か?ネタっぽいけど。
何気に >379 もネタっつーか煽りっつーか。
>376みたくマジメ(変数名はアレだったが・・)に答えて
くれる奴もいるんだからさ。
一応回答するけど。
氏名コントロールを指定して、書式 > 条件付書式を選択
するまではわかるよね?
で、条件(1)は 式 を指定。式の内容は
[区分]="9"
これだけ。区分フィールドがテキスト型じゃなく数値型なら
[区分]=9
とすればよろし。
初心者にオススメのサイトがあるんで、紹介しておきます。
ttp://www.geocities.co.jp/SiliconValley/5634/index.html
>390さん。ありがとう。 ほんものの245です。一度362でお願いしたんですが、返事が無かったものですから。 あなたは、251 278さんですか? よく怒られますが、今後ともよろしく。
390ではない(w 漏れは厨房の質問はパス(w
>393=251 わりー。何かネタっぽかったんで、煽られてみました。 勘違いさせてしまってスマソ。
395 :
名無しさん@そうだ選挙にいこう :02/02/14 19:31
すみません。 Format関数について教えて下さい。 02/01/15の日付を2002年1月15日に直すだけなら = Format ([コントロール名など],"ddddd") でいいのに、式ビルダでFormat関数を出したら = Format (<expr>, <fmt>, <firstweekday>, <firstweek>) こんな風にでてきます。 使い方がよくわかりません。 あと FormatとFormat$の違いも教えてください。
396 :
名無しさん@そうだ選挙にいこう :02/02/14 20:52
>Format(expression[, format[, firstdayofweek[, firstweekofyear]]]) >expression 必ず指定します。任意の式を指定します。引数 expression に指定したデータは、引数 format の書式に従って変換されます。 >format 省略可能です。定義済み書式または表示書式指定文字を指定します。 >firstdayofweek 省略可能です。週の 1 日目を指定する定数を指定します。 >firstweekofyear 省略可能です。年の第 1 週を指定する定数を指定します。 以上ヘルプから一部コピペ []で括られている部分は省略可能です。引数expressionは書式設定する値・式 なので指定しないことには話にならんですねえ。 で、2個目の引数formatが書式ですね。"ddddd"とか"yyyy/mm/dd"とか"h:m:s"とか。 3個目・4個目は使ったことないので「多分」ですが第何週とかを出したい時に 使うのではないかな〜と思います。引数formatに"ww"をいれて3個目・4個目の 引数をいじって見てくださいな。 普段は2個目の引数までしか使用しないと思います。 で、$付きですが、Format関数はバリアント型をFormat$関数は文字列型の値を 返します。違いはバリアント型は便利、文字列型は使用メモリが少ない、とのこと。 ふむん。今度使ってみようかな。でもFormat関数が重いって感じた事ないなあ。
397 :
名無しさん@そうだ選挙にいこう :02/02/14 23:52
重いと言っても、速度差はミリ秒単位だよ。 それより、システムのロケールに従うかどうかっていう違いのほうが大きい。
398 :
名無しさん@そうだ選挙にいこう :02/02/15 20:52
399 :
乗り換え予定者 :02/02/15 23:16
他のDBから乗り換え予定のアクセス素人です。 教えて下さい。 リレーションの主キーとなりうるのは、数字だけというのは本当ですか? あとアクセスの方が便利なとこ、不利なとこ、教えて下さい。
>リレーションの主キーとなりうるのは、数字だけというのは本当ですか? 本当だったらナニ?、ウソならナニ? >あとアクセスの方が便利なとこ、不利なとこ、教えて下さい。 ナニと比較してのこと? >他のDBから乗り換え予定のアクセス素人です。 >教えて下さい。 だからナニ?
便利・不利って… そもそも何と比べてなのよ。 まぁ、例えば桐スレの厨どもに言わせると、 「アクセスは関数が日本語じゃない。解りにくい。」 「アクセスは四捨五入がちゃんと計算できない。自作関数めんどい。」 とか言ってるんです。 ……もうね、アフォかと。ヴァカかと。
402 :
名無しさん@そうだ選挙にいこう :02/02/16 06:02
おまえら 劣等感 ばりばりだな
403 :
名無しさん@そうだ選挙にいこう :02/02/16 13:11
アクセス勉強してる生徒さんに(数名) 簡単なデータベースを組んでもらうために 題材を探しています。 フリーで良い題材があれば教えてください。 VBAまでは教えないし、バリバリ仕事で使う風でもないので それくらいのものがあれば・・・。
有料の題材ってあるのかい
高等学校の教員をしております。勤務先に情報専門の教員はいません。 成績処理のシステムをアクセスで組みたいと思っております。 このことについてご相談させてください。 ただ、私自身はアクセスの経験はなく(研究中) 業者または業者の従業員のアルバイトに依頼するつもりでいます。 次の条件を満たすことが必要条件です。 1 実際に成績入力する教員の大半はワープロさえ怪しく、 そういう方が拒否反応を示さないインターフェイスである。 運用する者は必ずしもそこまでは要しない。 2 完成後1〜2年の調整(バグフィックス・機能追加)を受けてくれる。 3 大手予備校からのエクセルデータを読め処理できる。 4 成績データベースとして常識的なこと(偏差値等を出す)ができる。 5 学校の教科は変更されることがあるのでそういったことにも対応できる。 例 旧 社会 は 現 地理歴史 と 公民 に分割など 6 できれば成績だけでなく在籍中は総合データベースとして使いたい。 7 当方が希望し、料金を払えば調整期間を延長できる。 8 もし、校内の評判が良く他校で利用したいという声があった場合 料金を払えばそれを認めてもらえる。 この条件で依頼したら費用・期間どのくらいで受けてもらえそうでしょうか。 アクセスに詳しい方、自分なら・・・ということで 教えていただけないでしょうか。
406 :
名無しさん@そうだ選挙にいこう :02/02/16 17:24
現在、mdbをテーブルとテーブル以外に分けて サーバー側にテーブル.mdbを置いていてクライアント側でリンクしています。 リンクするときに、 クライアント側でネットワークドライブを作成しそれとリンクするのと ネットワークドライブを作らずにリンクするのでは パフォーマンスに違いは生まれるのでしょうか? またみなさんはどちらの形でリンクしているのでしょうか よかったら教えて下さい。
>>405 俺自身はアクセスは仕事で使わざるを得ない程度の
キャリアだからどうこう言えないんだが、
エクセルデータ云々はアクセスなら読み込めるよな。
標準偏差なんかはエクセル関数で処理できるだろ。
ただ、成績処理のシステムって具体的にどんなものかが
教育関係の職種に就いてないと分からないような気がする。
俺の考えでは、アクセスは最初にどんな風にするってのが
練り込まれてないと、後が面倒なんだよな。
で、学校で誰もアクセスを使える人間がいないのなら、
エクセルで管理してるほうがよくないか?
409 :
某高校教諭 :02/02/16 20:44
>>405 某高校で成績管理をしています。同じことを考えていろいろソフトを
調べてみました。外部にオリジナルの成績処理プログラムを依頼すると
開発期間1年、費用は数百万〜一千万円くらいです。保守料やプログラム
変更は別料金です。
市販のソフトでは日立の成績管理システム2がオラクルとあわせて百万円
くらいです。保守料は一年で12万円で、学習指導要領などが変われば
その費用内で対応してくれます。欠点はあまりカスタマイズできない所で
しょうか。
うちの学校では日立のシステムを導入しようと予算請求をしましたが、
県に却下されました。仕方がないので、本校の成績管理システムは自分で
制作中で〜す(アクセスとエクセルで)。うちの教員に使ってもらいながら
改良をしていっています。正直、かなり辛い作業です・・・。
397さんフォローありがと。
>>403 ちょっとそういうのを見たことがないですが、手元の書籍のデータをエクセルで
表に作って、それを元に蔵書データベースを作るとか、適当な住所・氏名等を
でっちあげて住所録を作るとかではいかがでしょう?
>>405 そのようなものがAccessで可能か?といえば可能ですが、
1 使うほうが簡単なものは作るほうは難しいです。
2と7 その様に長期のバグフィックスを望むなら「業者の従業員のアルバイト」に
頼むのは避けたほうが賢明かと思います。
3 Excelのデータ形式によりますが可能かと。
4 教員のかたの常識を知っているのは教員or元教員のかただけかと思います。
作るかたにちゃんと伝えてあげてくださいね。
5 他にも変更がありうる点は作り始める前に洗い出して伝えることが重要です。
6 総合とだけ言われても備考欄が活用されまくる(備考は必要だけど活用され
まくるのはねえ)こととなるので必要な項目を伝える事。
8 契約の問題ですね。また、他校の希望などによる変更やサポートの際の
料金等も契約時かその時にかはともかく決める必要があると思います。
2及び7を望むなら、会社として請け負って貰わないといけないと思います。
個人に頼んだ場合、その方がどうかなった場合に困りますよ。まあ会社も
潰れることがありうるのですけど、潰れた場合でも担当の方が再就職した
同業者に引き継いで再契約を結ぶ等の解決策が取れますし。
期間・価格に関しては合い見積もりを取る等してみてください。
(書込みまえに確認したら409さんが現場の情報を出していただけてますね)
>>406 えーとネットワークドライブは端末の設定で変わりますが、同じLAN上の
共有フォルダなら"\\SarverName\Table"等で同じ様にアクセスできると思いますよ。
うーむ・・・ 2chらしからぬ受け答えだ(w キチンと質問すればキチンと回答してもらえるのねココ(w
>>407 たしかにエクセルだけで管理できるならいいのですが
そのうちうまくいかなくなる事情があります。
現在、成績管理は在職中の数学の教員が作ったソフトがあり
それを用いています。
しかし、これがWindowsXP上で
ソフトのバグフィックスができなくなるようなのです。
皆様ご承知のようにWindows9x系のハードウェアが
次第になくなっていきますが
この環境でないとオリジナル成績処理ソフトが
修正できないというわけです。
もちろんすぐに9x系環境がなくなるわけではないのですが
先は見えているというわけです。
ソフト作成者も余技で組んだものであり、
彼に今更新言語を覚えてくれともいえず
寄らば大樹の陰というわけでもないですが
MS社のアクセスなら運用できる方も多いでしょうし、
参考書もあるかと思います。
>>408 吉牛ですか・・。多分言われると思いました(w
>>409 >費用は数百万〜一千万円くらい
>市販のソフトでは日立の成績管理システム2がオラクルとあわせて百万円くらい
これほどかかりますか。
>本校の成績管理システムは自分で制作中で〜す
>正直、かなり辛い作業です・・・。
表層的なことしかわかりませんが辛いのは分かります。
運用・管理・修正など全責任がかかってくるし、
相当に時間がとられるでしょうね。
>>410 貴重なアドバイスありがとうございます。参考になりました。
**************
3年ほど前、現在、日本にいないはずの
知人(アクセス使い・現在行方不明)に
50万円くれるなら、アクセス・エクセルだけで組むぞ、
という内容のことをいうれたことがありました。
そのときは聞き流していたのですが、
今そういったことを考えなくてはならない
立場になり、現在の相場を知りたくなったわけです。
お世話になりました。
>>412 9x系環境がそのうちなくなっていくだろうという考え方は
わかるのですが、今アクセスでそのソフトを作ってもらったとして
どのくらい使うつもりなのでしょうか?
実際問題として未だ95,98を使っている会社も多く、
そう簡単にはなくならないと思います。
なくなるころには今作ってもらったソフトも動くかどうか怪しい気もしますが・・・。
動いたとしても使い物になるかどうかもわからないと思います。
もし、それだけが理由というのであれば考え直す余地はあるかと思います。
415 :
名無しさん@そうだ選挙にいこう :02/02/16 22:45
Accessから、Excelを起動し、Excelの自動マクロで処理をした後、 Excelを終了し、処理後のファイルにリンクする。 というマクロをAccessで組みたいのですが、うまくいきません。 Excelを起動はShellコマンドで出来たのですが、アプリケーションの終了が出来ず、 リンクがはれないようです。 どなたか、この初心者に解決方法をお教え下さい。
416 :
名無しさん@そうだ選挙にいこう :02/02/16 22:56
>>405 アクセス、エクセル位なら、業者うんぬんではなくて信頼のおける
個人を顧問契約してやるしかないと思いますよ。特に大事な情報を
扱う訳ですから、アルバイトなどでは絶対だめです。
例えば、パソコン教室とかの先生とかにあたってみてはどうでしょうか?
月額顧問料5〜10万くらいでやってくれるんではないでしょうか。
最初の開発料は4〜50万かかるかもしれませんが。
予想されるデータベースの複雑度はそれほどとも思いませんので、
ご自分で挑戦するのも良いかもしれません。ただ、流動的な先生の職業柄
難しいかもしれませんね。
多分、その程度なら開発期間はひと月くらいで大丈夫だと思うのですが。
基本生徒個人情報
教員情報
各テスト結果
出席状況
志望校情報
各教科情報(?)
etc.
くらいですよね。
そんな、繁雑でもないような気が。
>>416 レスありがとうございます。
>信頼のおける個人を顧問契約してやるしかない
たしかにそうかもれません。
> ご自分で挑戦するのも良いかもしれません。
>ただ、流動的な先生の職業柄難しいかもしれませんね。
将来的には自分で組んでみたいと思います。
また、教員はある程度で転勤がよくあるので
難しい所があります。
>>414 たしかにそうですね。9x系環境はすぐには消えないでしょう。
>なくなるころには今作ってもらったソフトも動くかどうか怪しい気もしますが・・・。
>動いたとしても使い物になるかどうかもわからないと思います。
これは怖いですね。コンピュータの進度は早いですからね。
ただ、情報の後出しになって申し訳ないのですが
現在のオリジナル成績ソフトを作った教員が
あと2年くらいで転勤が待っているので
あまりゆとりがあるわけではなく
これがやや焦っている事情です。
>>417 逆によく分からなくなってきたのだが、
現在の数学教員が作成したオリジナルソフトというのは
言語は何で書かれてるわけ?
412の時点でExcelでの管理が上手くいかなくなる理由に
そのオリジナルソフトを挙げているんだが、
オリジナルソフトを使っているなら、別にエクセル関係ないように思うが…
数学教諭の転勤が後2年後なら、それまでそのソフトを使って
この2年間でAccess+Excelの勉強をあなたがするのも
一つの手のような気がする。
>>418 ううむ、分からなくなりましたか。
説明がまずくてすみません。
オリジナルソフトはF-BASICというので書かれています。
オリジナルソフトで定期考査などの点数を入力し
偏差値・順位・上位者リスト・個別配布表等を出しています。
ここからcsv書き出しができます。
校内考査だけで全てが完結するのならいいのですが
予備校などのExcelデータと統合し
進路指導の資料冊子等を作っています。
また各教員が作ったデータ類もあるのですが
現在バラバラで連動していません。
3年次に大学へ送る調査書に載せるデータ、
通知票に記載するデータ等、
これらを統合し漏れがないようにしたい、
できれば企業のデータベースのように
名前・電話番号が分かれば
全て分かるような管理をできたらいいと思っています。
まずは成績管理だけでもとは思っていますが。
>数学教諭の転勤が後2年後なら、それまでそのソフトを使って >この2年間でAccess+Excelの勉強をあなたがするのも >一つの手のような気がする。 これが理想ですね。 自分でそこまで技術を会得できればそうしたいです。 またそうなるべく研究中です。 ただ、一末端ユーザーでなく 全体を把握・運用できるまでに習得できればいいのですが 時間が限られているのでできる保証がありません。 これが外部に依頼しようかと思った理由です。
>>405 F-BASICか。ちょっと調べてみたけど、
確かに現状ではWINXPには対応してないね。
(っていうか、富士通が対応版を出すのかもなぞ?)
VBだったらよかったのにね。
Excelに拘る訳じゃないけど、
>>419 で書いている
偏差値・順位は関数で処理できるし、上位者リストも出せるでしょ。
個別配布表等はどんなものかがちょっと分からないんだけど、
Excelでも、簡単なデータベース処理は出来るよ。
その数学教師にExcel上でVBA使ってもらって、
オリジナルプログラムの代替を作ってもらって、
あなたがAccessを勉強した後、インポートというのが
最もお金がかからない方法ですね。
個人的意見だけど、Accessに限らずOffice関連は
他の製品と連動させて使いやすいという感覚があるから
単一アプリで処理させようと思うと逆に難しいような。
422 :
初心者でごめんなさい :02/02/18 09:52
突然すみません。 本当にまだ初心者で2ちゃんの方にする質問としては失礼かもしれませんが、 Accessで販売管理のソフトをつくろうとしています。 良い参考書をどなかご存じありませんか? よろしくおねがいします。
【Access2000】レポートの印刷についでなんですが教えてください。 【テーブルA】から抽出クエリで【テーブルB】に4000件程書き出しました。 クエリでの並べ替えは、[連番]の昇順あとは[住所]とか[名前]。 その【テーブルB】を使い、印刷すると、連番順に印刷されません 1〜687ページ位までは連続して出力されますが、突然200ページ分飛び、 888〜になり、しばらくして、また突然さっき飛んだ688〜始まります。 連番の飛び方はこのような感じです。 1〜687→888〜1114→688〜887…(この後も飛んだり戻ったり) クエリだけではなく、レポートの『並べ替え/グループ化』でも 連番/昇順 の指定をしてやらないといけないのでしょうか? ちなみにプレビューのページ番号ボックスにはちゃんと4000件分あります
>>423 レポートウィザードを使っているのであれば並び替えの指定ができるはずなので
そこで設定しましょう。
>>388 さん 245です。 お世話になります。
条件付き書式ですが。 出来ました(ありがさうございました)
工事に付き工事済み、予定、及び本日工事を管理しているのですが。
[区分]>Now() [件名] 赤表示
[区分]<Now() [件名] 青表示 は 出来ました
所が 本日工事 [区分]=Now() とか [区分]=Date() で [件名] 緑表示
工事未定(データ入ってないので) [区分]=Null [件名] 紫表示
としたいんですが、無視され表示されません。
社長が次々に言ってくるので困っています。他の仕事もしていますし、よろしく。
すみません。390さんです。
427 :
名無しさん@そうだ選挙にいこう :02/02/18 15:06
ある決まったいくつかの言葉、例えば、「ABC」「DEF]「GHI」 「JKL」があったとして、それらの言葉をわざわざ入力しなくても 済むように、マクロで値の代入を使って、ボタンを押したら 自動的にテキストボックスに言葉が入るようにしたんです。 でも、最初「ABC」といれて、そのあと「DEF]と入れようとすると 上書きされてしまって、「ABC」が消えてしまうんです。 それで、「ABC」と入っていて、そのあと「DEF」と入れても 「ABC」を消さずに、「ABCDEF」もしくは「ABC DEF」と なるようにしたいのですが、どのようにすればよいのでしょうか? VBAでコードを打てば、できるって聞いたんですけど 私にはVBは全然わかりません・・。 長くなってごめんなさい。よろしくお願いします。
428 :
名無しさん@そうだ選挙にいこう :02/02/18 17:29
名簿を管理したいんですが、IDを管理するにはどうしたらいいでしょうか? オートナンバーではなくて、 自分でID10・20・30と振り分けていき、後からID15・25と追加したいんです。 で、ID順に自動でソートしてくれるようにしたいんですが うまくいきません。
>>428 IDを主キーにすれば昇順に並ぶはずだけど。
>428 何をどのように管理しようとしているのでしょう? IDで管理するのは、今は流行りませんよ。頭がこんががってきます。
431 :
名無しさん@そうだ選挙にいこう :02/02/18 18:08
えーと、初歩的なことかもしれないんですが ID10 1さん ID20 2さん ID30 3さん 追加で ID15 1.5さんを入力 で、自動的に ID10 1さん ID15 1.5さん ID20 2さん ID30 3さん としたいんですが、 ID10 1さん ID20 2さん ID30 3さん ID15 1.5さん となってしまうんです。どうすればいいですか?
432 :
名無しさん@そうだ選挙にいこう :02/02/18 18:58
>>422 FOMのテキストに「販売管理」のデータがあるよ。
あとは谷尻さんのテキストがわかりやすいです。
433 :
名無しさん@そうだ選挙にいこう :02/02/18 19:00
知り合いの方の話なのですが コントロールウィザードを使って コマンドボタンを作成しようとしているらしいのですが、 うまくいかないそうです。 フルインストールしてるらしいので、ウィザードはすべて はいっているはずなのですが・・・。 他に何か原因はありますか?
>>427 マクロだとこんな感じ
【値の代入】
アイテム: [Forms]![フォーム1]![テキスト1]
式: [Forms]![フォーム1]![テキスト1] & "ABC"
435 :
396&410 :02/02/18 22:33
>>416 ちょっと甘い見積もりな気がします。きっつい仕事を安く取ってしまわないよう
気をつけたほうが良いかもしれません。ちょっとテーブル構造だけ考えてみましたが、
単純な親-子-孫といった構造ではなくいとこやはとこがたくさん生まれそうです。
さらに年度ごとのクラス替えの時のデータ移行なんかもきつそうです。
>>405 の1を見るとユーザー教育も大変そうだと思います。
2もきついですね。恐らく405さんのほうでもどんな機能が必要なのか把握しきれて
いない感じです。6や7もそのあたりの不安からかと思います。
見積もりを出すときにこの辺のユーザーさんが直接言っているわけではない迷い
みたいなものも汲み取れないと、のちのち作るほう使うほう双方の不満のもとに
なります。技術だけではなくコミュニケーション力も売り物ですよ。
>>425 ん〜と、[区分]が「02/02/18」って見えても、実際のデータがそのとおりでは
ないってことかなあ。Format([区分],"yy/mm/dd")=Format(Date(),"yy/mm/dd")
とかちょっと前に出たFormat$とかでどうかな?あと何時何分何秒まで比較するとか。
もういっこのNullのところで[区分]=""ってのはどうかな。からの文字列。
それから掲示板で聞くときに相手を指定して聞くのはちょっと失礼だよ。
指定した方がたまたまみてないかもしれないし、他の人答えにくいしね。
(といいつつ俺は答えてるけどさ)
>>428 テーブル開いてIDで並び替えをやって保存してみたらどうだろう。
あとデータベースだと並び順は保証されないから「これ順で!」ってときは
クエリを間に噛ますようにしてね。
>>433 うまくいかないっていわれてもねえ。君の知り合いがお馬鹿な可能性とか
君の家庭生活がうまくいってない可能性まで心配させる気かな?
エラーメッセージはなんか出てないの?アドインとかかな?
436 :
名無しさん@そうだ選挙にいこう :02/02/18 23:26
ACCESS97のライセンスを安く買いたいんですが 安く買う方法ないでしょうか? MSのHPに載っているライセンス取り扱い店で見積もったら 無茶苦茶高くて驚いてしまいました。 ACCESS2000のもので1ライセンス2万くらいだった・・・
>>418 >個人的意見だけど、Accessに限らずOffice関連は
>他の製品と連動させて使いやすいという感覚があるから
>単一アプリで処理させようと思うと逆に難しいような。
何度もレスありがとうございます。
確かに連動させたほうがいいのかもしれません。
これから研究してみたいと思います。
>436 今日びねー、Access97のライセンスを新たに購入するメリットは 何もないと思うんだが。素直にOffice2000のデベロッパ買っときー。 ランタイム配布があるかないかで大差だよー。開発者、に限ってのハナシ。 >428 自動連番のシステムは色んなトコで論議されてきたけど、結局は 「用途による」で様々な方法がある。 その型はテキスト型がいいか、数値型がいいか。空番はオッケー なのか、挿入はあるのか、などなど。 自分の場合、IDを管理するテーブルを設けたりする。これがフレキシブルに 対応できてイイカンジなんだけど、ちょいメンドイかも。 規定値、DMax、DCount、などのキーワードで調べてみれ。 行き詰まるまで頑張ってこい。進捗状況くらい報告してな。
>435おはようございます、ありがとう。 返事くれると思いました。 ここ1000いくまで、245で行きますので、よろしくお願いします。
>435 Nullのところでは[区分]=Is Nullで表示されました。 で、条件式は3条件 プラス1(どの条件にも満たさない時)の4条件までですので 条件1で<Now() 条件2で>Now() 条件3でIs Nullでやり、 どの条件にも満たさない時で当日(=Now)が反映されるかと思いましたが だめでした。ご報告まで。
Nowは現在の日付と時刻だから見えない部分で時間比較まで行ってるから うまくいかないんじゃないかな。 Dateでやってみたら?
442 :
名無しさん@そうだ選挙にいこう :02/02/19 16:04
>>438 ありがとうございます。
宅配関係なんで空番・挿入とも必要なんです。
ACCESS使い始めて間もないので、勉強してきます。
>441 出来たー 新規にテキストボックスを作成しコントロールソース欄Iif([区分]=Date(),"1") と記述し当日を1と取出し、条件式にいれましたら表示されました。Now()はだめでした。 Iifは一度レポートデやったことがあり思い出しました。ありがとう。
>>436 アキバのZOAのはす向かいあたりに中古ソフト売ってなかったっけ?
Access2.0で1000円だか500円だかの値札がついてた。
2万って定価くらいか。
正しい道を踏み外したくなるような値段ではないな。
でももうバグフィックスされないだろうな...そんなもんのライセンスって...
ダメだ厨すぎる…
446 :
名無しさん@そうだ選挙にいこう :02/02/20 02:31
時間軸を表示したAccessのスケジューラーのテンプレート、 どこかにサンプルありませんか?
447 :
名無しさん@そうだ選挙にいこう :02/02/20 10:09
検索機能のためにクエリで、 Like"*"&[入力をしてください] としました。 確かに、検索自体はできるのですが、フルに入力しないと ダメなんです。 あと、例えば「算数ノート」を検索する時だったら 「ノート」とか「ート」、「算数ノート」ではヒットするのに 「算数」とか、「数」ではダメなんです。 そこで、あいまい検索できるようにしたいんです。 わざわざワイルドカード指定のために*マークとかうたなくても 文字列の一部分だけでも、検索にヒットするようにしたいのですが どうしたらよいのでしょうか? さっきの例なら、「*数*」ってしなくても「数」だけで ヒットするような感じにしたいんです。 何冊か本を調べましたが、全然ダメでした。 よろしくお願いします。
>>447 ガイシュツ。ログ読め。
それに、
>Like"*"&[入力をしてください]
としたのかの理由も考えてみた方がいいよ。
意味もわからず書いてるからそうなる。
>>447 これ私が251で怒られたものですね。
448さん怒るわけですね。
450 :
名無しさん@そうだ選挙にいこう :02/02/20 17:55
ACCESSのインポートの際に処理が終わる前に、 次の処理にいってしまうと厄介なエラー(そのときによりさまざまです)が 出てデータが壊れてしまいます。 インポートの処理が終わるまで待つにはどうしたらよいのでしょうか? 大きなデータを読み込む際に困っています。 もし何かいい方法があれば教えてください。 よろしくお願いします
451 :
名無しさん@そうだ選挙にいこう :02/02/20 20:51
会社で上司に対して「アクセス」の「クエリー」とはなにか について説明をしなければならなくなってしまいました。 上司も私もアクセスに関しては素人です。 どのように説明したらよいのでしょうか。 宜しくお願い致します。
クエリー 【query】 関連用語 データベース データベース管理システム リレーショナルデータベース 読み方 : 「クエリー」 データベース管理システムに対する処理要求(問い合わせ)を文字列として表したもの。 データの検索や更新、削除などの命令をシステムに発行するのに使われる。 検索クエリーでは、対象となるテーブルやデータの抽出条件、並べ方などを指定する。 一度作成したクエリーは保存しておいて何度も使うことができるようになっているものが多い。 リレーショナルデータベースでは、クエリーの記述にSQLという言語を使うことがほとんどである。
>>449 に対しては445さんの脱力と同じものを感じます。
>>443 で解決して満足したかもしれないけど、理解はしてないのよ。君は。
443を読んだ時にそれを説明しようかとちょっとおもったけど、君ぐらい
わかってない人にそれを説明しようとしたら50行ぐらいの長文がいると
思ってさ。んでもって君の今までの書き込みと433からさ、
「無駄だ」って気付いてやめたの。ようするに俺は君の事投げたの。
ちなみに
>>448 さんが怒ってるとは俺には読めない。「〜した方がいいよ」って
怒ってる人は書かないよ。国語力も足らないね。
>>447 さん。そこはね、結構最初のほうでつまづきやすい所だから、
俺にできる限りだけど詳しく説明するね。きっと、Accessの書籍か何かで
「Like"*"&[入力をしてください]って抽出条件に書くとこうなります」とか
書かれていたけどそこの説明が不足していたか、わかりにくかったのだと思います。
わかってしまえば「な〜んだ」ってところだから、頭のいい人だと躓かなかったかも
しれないから448さんが「ガイシュツ。ログ読め。」って言われるのもいまなら
わかるんだけど、「意味もわからず書いてるからそうなる。」って
その「意味」がわかるまでが最初でわかんないと結構難しいんですよ。
俺もAccess使い初めて1年ぐらいは「じゅもんじゅもん」っていいながら
ダブルコーテーション(")やアスタリスク(*)打ってたから。
「Like」これは演算子のひとつで、文字列の比較を行う演算子です。 演算子ってのは「+ - * /」(足す引く掛ける割る)とかを含むものです。 「x=1+2」って場合、xは3ですよね。「x=算数ノート Like 算数ノート」とした場合、 xはTrue(真。あってますよ〜ってこと)答えが出ます(結果が返ると言います)。 「x=算数ノート Like 鉛筆」だと、False(偽。まちがってます)が返ります。 で、クエリで「Like 算数ノート」と抽出条件に書くと、そこのフィールドで Trueが返った行だけ(ようするにそのフィールドに「算数ノート」ってある行だけ)を 抽出してね、ってことなんです。 「x=各行の抽出条件の書かれたフィールドのデータ Like 算数ノート」でxがTrueの行 だけ抽出ということです。 で、この「Like」には「*」や「?」や「#」を特別な文字として使うことができます。 「*」は演算子としての「掛ける」の意味もありますが、「Like」演算子の所で 使う場合は「任意の数の文字列」という意味を持ちます。 「任意の数」ってのは1でもいいし、100でもいい。何文字でも良いですよ、って意味です。 0でもいいんです。 「x=算数ノート Like *ノート」はTrueです。「算数ノート」の部分が「国語ノート」 でも「ノート」でもTrueですが、「算数」とか「ノート算数」はFalseになります。「Like *ノート」と書くと最後が「ノート」で終わる文字列って意味になるんですね。 逆に「Like ノート*」と書いた場合、最初が「ノート」で始まる文字列って意味に なります。んじゃあって事で「Like *ノート*」と書くと、最初でも最後でも途中でも いいから「ノート」って文字が含まれていればTrueになります。 「?」や「#」も「*」と似ていますが違う意味を持っています。どんな意味かは HelpのLike演算子について調べて見てくださいね。 「[入力をしてください]」の部分はパラメーターと言います。クエリの機能の一つで クエリを開いたときに「パラメーターの入力」ってダイアログボックスを開いて 「入力をしてください」という文章と入力をする所を表示します。 そこで入力したものと等しいデータを持つ行だけを抽出して表示する機能です。 「[入力をしてください]」と書かないといけないと制限されているわけではなく 「[商品名を入れてください]」でも「[なんか用?]」でもかまいませんよ。 ここで、「Like [入力をしてください]」ってやると、パラメーターの入力時に 「*」や「?」を使用することができます。ダイアログボックスに「*ノート」とか 「算数*」、「*ノー*」とか入力することができて、「算数ノート」などの行を 抽出できます。 で、毎回「*」使うから、パラメーターの入力時に省略したいってことになると。 そこで「&」が使われます。「&」も演算子で文字列の連結を行います。 「x=算数 & ノート」ってやると、xに算数ノートが返ります。 で、「Like * & ノー & *」と書くと、「Like *ノー*」と書いたのと同じ意味になります。 パラメーターだと「Like * & [入力をしてください] & *」ですね。 はい。ここまでわたくしウソをついておりました。実はこういう式を書くときには 約束事がありまして、「式の中では文字列はダブルコーテーション「"」で囲む事」 っていうのを無視して書いてきたんです。最初の方の「x=算数ノート Like 算数ノート」 は本当は「x="算数ノート" Like "算数ノート"」と書かないといけないし、 「x=算数 & ノート」は「x="算数" & "ノート"」だし、「Like * & ノー & *」は 「Like "*" & "ノー" & "*"」だったんです。 そして、「Like * & [入力をしてください] & *」は 「Like "*" & [入力をしてください] & "*"」 となります。
もし俺が>447に即レスで返すなら >「Like "*" & [入力をしてください] & "*"」って書け。いじょ で、良かったんですけど448さんにちょっと失礼なのと (448さんのレスは国語力がなくて自分で考えない人には付き離して見えるかもしれないけど 「過去ログにありましたよ。>Like"*"&[入力をしてください] の応用です。 なぜこう書いていると後方一致の検索ならできるのか考えてみてください。 書籍からの丸写しではなく意味を理解してみようと頑張ってみてはいかがでしょう」 というとてもストレートなマジレスです。ってなんで2chでそんな説明してるんだ>俺) 理解して使うと応用が利くからなんです。 まず、クエリを作ります。447で使用したのと同じテーブルを元にしたクエリです。 「Like"*"&[入力をし〜」のところを「Like "*" & [Forms]![F商品検索]![検索条件] & "*"」 とします。これはパラメーターとして「フォーム」の「F商品検索」というやつにある フィールド「検索条件」を指定しています。 このクエリを、名前は「Q検索結果」として保存します。 フォームをデザインビュー新しく作ってください。まずコントロールウィザードを 切って下さい。フォームをデザインビューで作ったときに表示されたコマンドボタンの 中で左から2番目にある杖から粉が出ているボタンが引っ込んでいたら一度クリックして 引っ込んでいない状態にして下さいという意味です。 ここに新しくテキストボックスを作って(コマンドボタンの[ab]をクリックして フォームの詳細って書いてある下の辺りをクリックする)、名前を「検索条件」とします。 (新しくできたテキストボックス[非連結 ]を右クリック、プロパティを開いて すべての一番上の「名前」の「テキスト0」を「検索条件」にする) この横にボタンを作ります。名前は「検索ボタン」とします。 検索ボタンのプロパティのイベントの「クリック時」をクリックすると右端に 下向きの三角(▼こんなの)がでます。それをクリックして「イベントプロシージャ」を 選んでください。三角の右の[...]ってなやつをクリックするとVBのエディタが 起動して Private Sub 検索ボタン_Click() End Sub と表示されていると思います。ここに Private Sub 検索ボタン_Click() DoCmd.OpenQuery "Q検索結果" End Sub と入力します。 と、ここまで書いたところで疲れてしまったので、また明日にしますね。
457 :
名無しさん@そうだ選挙にいこう :02/02/20 22:12
会社で上司に対して「アクセス」の「クエリー」とはなにか について説明をしなければならなくなってしまいました。 上司も私もアクセスに関しては素人です。 どのように説明したらよいのでしょうか。 宜しくお願い致します。
458 :
名無しさん@そうだ選挙にいこう :02/02/20 22:18
会社で上司に対して「アクセス」の「クエリー」とはなにか について説明をしなければならなくなってしまいました。 上司も私もアクセスに関しては素人です。 どのように説明したらよいのでしょうか。 宜しくお願い致します。
459 :
457と458 :02/02/20 22:20
二重に入力してしまいました。 申し訳ありません。
なんか長文になってますが・・・。 別に怒ってませんよ。449の書き込みはうざいと思ったけど。 >Like "*" & [入力をしてください] これをどこで見つけてきたのか知らないけど、 これが理解できれば自ずとできるようになるはずなので書いただけ。 ちゃんと考えて理解した方がいいと思ってるからね。 ちなみに441書いたのも私です。うざいので無視してたけど、しつこいので書いた。 443みて脱力。 こんなこと書いてる私もうざいな・・・。
>>461 放置してください。
この馬鹿は、PC初心者板でマルチしただけじゃなく、
わざわざ単発スレまで立てている迷惑者ですので。
>>443 みて脱力
禿同。
「やたー条件付き書式できたよー」という結果だけに満足して
一生Now()がDate()&Time()だという事実を理解しないんだろうな。
そのうちまた似たようなケースで似たような問題につまずいて
似たような質問あげてくるんだろう…
おっしゃる通りです。 これからもよろしくお願いします。
465 :
名無しさん@そうだ選挙にいこう :02/02/21 16:11
CSVファイルなどをインポートして、その中のフィールドを 後からオートナンバーに変えるにはどうしたら良いのでしょう? 他のアプリで既にユニークなナンバーが振ってあって、 そのナンバーをそのままAccessですが、方法ありますでしょうか?
466 :
名無しさん@そうだ選挙にいこう :02/02/21 16:12
>そのナンバーをそのままAccessですが、方法ありますでしょうか? ↑そのナンバーをそのままAccessで利用したいのですが、方法ありますでしょうか? すみません、間違えました
467 :
名無しさん@そうだ選挙にいこう :02/02/21 16:22
会員名簿を作っていて、 番号検索用のパラメータクエリ「Q会員番号検索」 (テーブル「T会員名簿」を使用)と 「T会員名簿」を使って作っているフォーム「F会員名簿」を [Q会員番号検索]![会員NO]=[Forms]![F会員名簿]![会員NO] で開けるように設定してみたのですが、できません。 式がちがうのでしょうか? 「会員NO検索」のコマンドボタンをクリックしたら パラメータの入力が立ち上がって、そこに番号を入力したら それと一致するフォームが立ち上がるようにしたいのですが。
469 :
名無しさん :02/02/21 21:58
アクセスのソフト(アカデミック以外)で安い店をしりませんか? ヨド橋では3万(アクセス2002)ちょっとだったけど、ちょと高い・・・
>>469 アカデミック以外ではアップグレードバージョンが最も安いのではないか?
3万ちょっとオーバーするけど、OFFICEXPプロのスペシャルエディションの
限定パッケージだったら
インテリマウスもついてるから、お得感が高いのでは?
値段については、自分で調べてね。
http://www.kakaku.com/
他の「フォーム」の「コントロール」にはりついている「イベントプロシジャー(VBA)」を参照する方法知ってる?
463さん。教えて下さい。 [区分]=1 女 2 男 レポート[氏名]で、女は赤色、男は青色に表示するのは どのように記述したらいいのでしようか、教えて下さい。 怒らないで。
463さん、ごしめいで〜〜〜す。(w
怒られる前に バージョンは97です。 (会社のは2002ですが) 97は自宅で同窓会名簿作成です。
476 :
名無しさん@そうだ選挙にいこう :02/02/22 15:29
うちの会社では今Access97を使っています。 最近2002に変えるかどうかと言う話が持ち上がっているのですが、 どう思われますか? 上の方から意見を求められたのですが、いまいち判断が付きません。 個人的にはMSのサイトを見る限りそれほど必要ないのではないかと感じたのですが・・・。 2002のここがいいとか実際使ってる方にお聞きしたいです。
>>476 Access97に何か不満でもあるのか?
>上の方から意見を求められたのですが、いまいち判断が付きません。
判断できなきゃそのまま使えってこった(w
>>476 これ見てましたので。
Access自体よく判っていませんが。
いいと思った所。
住所入力で(〒番号入力で自動入力しますね)都道府県と市とかが
分けて入力できる事。 VBA判らなくても出来る機能が増えているように
思います(私VBAできませんから)
社内LANやインタネット用機能が良くなっているらしいです(私は3台社内で繋いで
やつていますが - よくわかりません)
悪いと思ったこと
サポートは2件聞くだけで終わり
97と変換がものすごく煩わしい(変換は難しいことはありませんが)
463にまた怒られるかなー。
>>478 2002が出たんで97はサポート切れと思われ。
2件どころの話じゃないんじゃ...
ADPに乗り換えられるのは2000,2002のメリットと思われ。
ネットワーク介して共有してるなら特にね。
>>279 いえ、私は別に導入する積もりはありませんでした。
社長が言うものですから。
>>479 アフォか・・・・
M$にサポートなんぞ期待するか(w
それに、、ADP使うスキルある奴なら、
とっくに乗り換えてるわ
>>481 出たな463 教えろ。 教えてくれー。 明日、明後日やすみ。 ではお休みなさい。
社内LANによりACCESS97で顧客管理をしておりますが、受付のPC(Windows95) では、当日の日付が正確に表示されますが、他のPC(98、Me)では、日付が2020年と表示されてしまいます。 PC自体の日付は正確に合ってます。ちなみに私の使用しているPC(98)では正確に表示されますが。 PC初心者ですが、どなたかよろしくお願いします。
>>483 それは、いわゆる2001年問題ってやつだ、覚えときな。
年二桁表記した場合、Jetは mm/dd/yy (いわゆるUS表記)で管理しているってやつ。
02/02/20 という値は、2002年2月20日と思われがちだが、
実は 2020年2月2日 と解釈されているわけ。
この現象が発生するのは、2001/01/02日以降。
例えば2000年12月31日だと、00/12/31 になる。
これはmm/dd/yyという形式は成り立たないため(0月なんてないからね)
内部的にyy/mm/dd に変換しているわけだ。
回避方法は、コンパネの日付の短い形式を4桁表記にすればいい。
パソコンのコンパネの設定に依存させたくないのなら、Format()関数を使って
内部的に全て4桁表記に統一させる必要がある。
>>484様 どうもありがとう御座います。なおりました。コンパネの方でやりました。 2000年問題では万が一に備えて缶詰などを買いましたが、 なんと2001年問題があったとは・・・・ さらにこれはソフトが古いからだと勝手に思い込み、 そのまま使っていました。 これで私の株もまた上がりそうです。
会員の利用履歴で その会員NOの最終利用日から今日までで 二年以上の利用がない人を削除したいのですが どのように検索して削除すればよいのでしょうか?
486です。 その会員NOの中の最終利用日なので Dlast("[最終利用日]","最終利用日と会員NOのテーブル名","[会員NO]") にしたのですがうまくいきません。 ・・・超初心者なので教えてください。
>>486 クエリーの演算フィールドに.....
datediff("d",[最終利用日],date)
抽出条件に......
>730
ちなみにうるう年の分は知らんぞ。
489 :
(・∀・) :02/02/23 23:53
アクセス起動時に 「ソースコード管理プログラムがありません」 の様なメッセージが表示されます。 でもって、VBEでの他では使える各種サポートが充分動作してない様です。 「True」って打ちたい時に「t」と打ち始めてもリストが表示されない等.. 普段はウザくてもないとどうも不便で.. 対処方法をよろしくおながいします。
490 :
名無しさん@そうだ選挙にいこう :02/02/24 01:04
Excelスレで全く回答がつかなかった質問です。 Accessに関係しているのでおわかりになる方お願いします。 Excel2000 SR1&Win2000を使用しています。 「データ」→「外部データの取り込み」→「データベースクエリ」で Accessのデータベースを取り込んだのですが、 「どのファイルのどのテーブルを取り込んだのか」が参照できなくて不便です。 Accessのリンクテーブルならデータベースユーティリティのリンクテーブルマネージャなどで 確認できるのですが・・・ Excelで同様のことは出来ないでしょうか?
491 :
名無しさん@そうだ選挙にいこう :02/02/24 02:04
>>489 >アクセス起動時に
>「ソースコード管理プログラムがありません」
>の様なメッセージが表示されます。
これって、Dev入れてVisualSourceSafeを入れていなかった場合にでるんじゃないかな。
無視しても問題ないかと思う。
VisualSourceSafeを入れるように追加でセットアップすると消えるはず。
VBEの動作不良とは関係ないと思ふが。
>>488 ありがとうございます。
えっとこの前に
会員NOの中から最大値を引っ張ってこないといけないのです。
利用履歴だから
毎日使った人が入力していくので
会員NOがデータの中に重複してるんです。
その同じ会員NOの複数のレコードから
一番今日に近い日を取り出して、
その値をdatediffかdateaddで
2年以上経過している値を探せばいいと思うのですが・・・。
その前の段階がわかりません。
よろしくお願いします。
494 :
名無しさん@そうだ選挙にいこう :02/02/24 12:19
利用履歴から消すの? 会員マスタから消すの?
495 :
名無しさん@そうだ選挙にいこう :02/02/24 13:21
>>486 難しく考えすぎ。
1.利用履歴テーブルを2年以内で絞込する。
2.不一致クエリを上記のクエリと会員テーブルで。
消すのが履歴のみなら2.と履歴を元にした削除クエリ、
会員も消したいなら2.を元にした削除クエリと2つで。
496 :
名無しさん@そうだ選挙にいこう :02/02/24 14:10
履歴はあくまでも履歴だから消すべきではないと思う 会員も実際に削除するよりは論理削除のフラグを立てるほうがよいんではないかな
497 :
486=超初心者 :02/02/24 14:32
>>495 ありがとうございます。
今、やってるのですが、不一致クエリの作成までできました。
そのあとが・・・。
削除クエリを設定しても「削除するレコードを含んだテーブルを
指定してください」とメッセージが出てうまくいきません。
実は、退会するという連絡があった人には
会員名簿に退会の欄にYES/NO型でチェックをして
削除クエリを設定しているので、
そこに不一致クエリで抽出した会員番号の人の名簿に
退会チェックを入れようと思うのですが・・・。
不一致クエリからフォームを作成して
マクロで値の代入で
アイテム:[T会員名簿]![退会]
式:[T会員名簿]![会員NO]=Forms![不一致フォーム名]![会員NO]
にしてみたのですがうまくいきません。
助けてください。
よろしくお願いします。
498 :
名無しさん@そうだ選挙にいこう :02/02/24 16:19
うまくいかないとは具体的に何がどううまくいかないのか。
>>486 うむ、うまくいかんであろ。
な〜じぇうまくいかんのか。それは君が2つ間違いをしているからだ。
たぶん君は不一致クエリから作った[不一致フォーム名]と[T会員名簿]の
2つを開いて、不一致フォームの会員NOと同じ会員NOのT会員名簿の[退会]を
すべてYesに変更したいのではないかい?
上記のことをしたいと仮定して話を進める。
間違えた点その一。マクロを選んだ。こういうときは更新クエリをお使いなさい。
確かにマクロを使いこなせばできないこと「も」ない。でもめんどくさくて遅い。
クエリで絞り込むことができてそれを一括して更新したいってのは、
もう更新クエリの仕事以外の何者でもない。(消すためにチェックするだけなら
495でゆうたように削除クエリでよろし)
更新クエリ・削除クエリをヘルプで調べて、それでもわからんかったら
「どうわからんのか整理して」聞いてみんちゃい。
その二。マクロの使い方を間違えた。マクロ「値の代入」は「アイテム」に
対して「式」に入力したものを入れるだけだあよ。例えば式にYesとだけ入力して
マクロを動かしたなら、フォーム[T会員名簿]の(開いていないといけないよ)[退会]
が1つだけYesに変わる。その会員が[不一致フォーム名]の中にあるかどーかは関係ない。
>>496 おお、そーですね。気付きませんでした。
もしくは気付いた事に気付かないとしたのかも。496さんはおやさしい。
ちゅーことで486くん、検討してみなさいな。
500 :
486=超初心者 :02/02/24 21:42
>>498 マクロを実行しようとすると
(設定しているコマンドボタンを押すと)
このオブジェクトにはオートメーションオブジェクト"T会員名簿"は含まれません。
オブジェクトのプロパティを設定するか、
メソッドを実行するVisualBasicプロシージャを実行しようとしましたが
これらのプロパティまたはメソッドが使用できません。
オートメーションオブジェクトでサポートされているプロパティまたは
メソッドについては、コンポーネントのドキュメントを参照してください。
とでます。
501 :
486=超初心者 :02/02/24 23:24
>>499 さん
ほんとにありがとうございました。
そりゃそうです。更新クエリですよね。
作ったらうまくいきました。
目からウロコでした。
これからもっと勉強します&ご指導お願いします。
>>496 そうです。
履歴は消さずにそのまま残しています。
あと、退会者もテーブル作成クエリで別の「退会者」テーブルに
移動させてから削除するようにしました。
みなさんほんとにありがとうございました。
502 :
(・∀・)489 :02/02/25 02:21
>>492 レスありがとうです
office2000dev版からインストしたんですが
MSDNライブラリとかインストしなかったからかな..
(なんかカスタムインストールの項目見て必要ないかもとか思ったので)
ま、家で趣味的にいじってみようと思ってやってるだけなんで
VBEの不具合の方はだましだまし使ってきますー
>
>>463 245です。おはようございます。
ダメですか。教えて下さい。
504 :
名無しさん@そうだ選挙にいこう :02/02/25 18:44
こんな厨房質問してもいいのか・・ちょっと心配ですが 教えていただけると、とても助かります。 フィールドは、日付・取引先1・取引先2・取引先3・・・のテーブルAがあります。 レコードを日付ごとにして、取引先の商品量を集めてます。 もう一つのテーブルBは、取引先ID・取引先名・住所・TELのフィールドです。 レコードを取引先ごとにして、情報を集めてます。 つまりテーブルAのフィールド名が、テーブルBの取引先フィールドにあるデータなんです。 リレーションで結び付ける情報を、どうやって設定すればいいのか・・ 設計が、痛すぎるのは分かっていますが、取引先が70件あるので・・ 非常に悩んでいます。 ど・どうか識者の方のお知恵をよろしくお願いします。
イカガナモノカ
(・∀・)モン!!
あ・あのお・・ むりなんでしょうか? ・・もしかして、新しいVBAってことは・・ ないっすよねぇ・・
>504 イマカラデモオソクナイカラ ヒヅケ・トリヒキサキアイデー・シヨウヒンリヨウ ノテイブルニアラタメヨ
レスありがとうございます。
>>508 それだと、1日分に取引先数分のレコードが必要になりますよね・・
年間単位でこれからもずーッと、データ収拾する事が難しくなりそうで・・
頭痛いっす・・
もしかしたら、俺が痛いだけかもしんない・・鬱
それしか、やっぱりないんすか・・
>>509 2000/Monthテイドキツイカ? カコナンネンカンデータエツランヒツヨウカ?
マイツキイチネンマエノデータケストイウノハイカガナモノカ
保守員さんホントにありがとうございます。 このデータは、過去何年とか一年毎に更新してとかでなく ダレがいつのデータを、何の目的で参照するか分からず 存在が、半永久的に(と言っても、アクセスの範囲内で・・) 情報として、必要とされていまして・・ 入力もできるだけ、簡単にしたい・・という代物ナもんすから・・ 頭痛いッス・・
VBAツカエナイ? ダツタラキツイ テーブルAヲワークテーブルトシテ、ニユウリヨクはイママデノイメージデ、 ニユウリヨクカンリヨウジニ70ホンノクエリーマワシテ508ノテーブルニ ホゾンデハイカガナモノカ サンシヨウハ508ノテーブルデ
508ノテーブルハ、100,000/5Year タエラレナイケンスウデハナイ
質問していながら、恐縮ですが・・ 呼び出しが・・(今何時だぁ・・ゴラァ) 明日、また来ます・・現場っす・・申し訳ありません ゴメン
携帯からです。
レスほんとうに、ありがとう
>>513 >>保守員
またきます。
キデンノケントウヲイノル ジブンハフダンハンカクカSMイタニヲリマス
保守員さん・・(ソウナノカ・・) わかりました。 ありがとうですっ ゴメン
518 :
名無しさん@そうだ選挙にいこう :02/02/25 21:38
「クエリー」と「テーブル」とはなにか。 どのように説明したらよいのでしょうか。 よろしくお願い致します。
「テーブル」→データファイル 「クエリー」→SQL デハイカガナモノカ
SQLって何でしょうか。
>>520 テーブルヲ、アレヤコレヤソウサデキル ゲンゴ トシカセツメイデキマセン...
モツト、エレガントナセツメイデキルヒトキボン
523 :
486=超初心者 :02/02/27 01:15
パスワードについて教えてください。 「メンテナンス」のコマンドボタンを押すと パスワードを入力してくださいと表示されて、入力すると 「メンテナンス」のフォームに飛ぶように設定したいです。 「パスワード」のテーブルがいるかなと思って作成しました。 (でもパスワードは会社の固定のパスワードでいいです) で、パスワードの入力するフォームも作成しました。 ・・・それからがさっぱりわかりません。 INPUTBOX関数を使うのですか? マクロで設定したいので、よろしくお願いします。
厨房質問許して
Access ファイル共有、みたいな言葉で検索かけると、必ずODBCがどうのMSDEがどうの
って話がでてくるやん(ついさっきまで、それで4時間ほどWEB上うろついてたけど、何や
よう分からんかった)
んな御大層なシステムでもないし、正直、あんまり面倒な設定はしとないんよ。
単純なテーブルリンクではダメなん?
同時使用は2人(あ、実際にまだやっとるわけやないんよ。1人では仕事が追いつかなく
なってきたんで、近々隣の机のもう一人にもやらせよか思とるところ)
サーバーもクライアントもなし、2台のマシンに置くmdbは、テーブルを除いて、クエリ
もフォームも同じ構造。テーブルはもちろん、一方が実体でもう一方がリンク。
新規追加、更新もちろんあり
追加は2台のマシンからけっこう頻繁に(厳密な意味で同時いえるかどうかは分からんけ
ど、たぶんかなりの頻度でかぶると思う)
更新は、何となく怖いから何時間かおきにまとめて。
こういう使い方って、危ないの?
教えてくんだけやと申し訳ないんで、とりあえず
>>245 条件付き書式使えや
(氏名クリックして、『書式』から条件付き書式選んで、フィールドの値やなく『式』
選択して [区分]=1、で、カラーパレットから〜)
他の人はどうか分からんけど、この245のキャラクター、どこか憎めん
525 :
名無しさん@そうだ選挙にいこう :02/02/27 09:18
>524 まぁやってみれ。うまく行く場合と行かん場合があるハズ。 主キーとか設定してるんなら、発行の仕方をロジックでうまーく 組んでやらんとね。 もし、主キーも何もないデータなら、追加に関してはそんなに 危なくはない。 更新さえ気をつけておけば、2,3人ならJetでも頑張ってくれるよ。 あー、あと、モジュール、マクロ、フォームの部分とテーブルは別MDB にして配布してやれ。最適化も常に行え。バックアップは日毎に行うこと。 つーかね、ファイル共有に関して疑問持ってる時点で、君はまだマシよ。 頑張りなされ。 処理がどーしても遅く感じるんであれば、ロジックがおかしいか、ファイル 共有ではさばききれない量になってるということ。そんときはクラサバ考えろ。 で、クラサバへの移行も考えるんなら、DAOよかADOで組んでおいた方が移行 しやすい。
サンクス >525 ファイル共有、うまく出来るかどうかいま実験中(夕べはほとんど寝とらんで、頭も体も にょろにょろだゴルァ) 処理速度はあんまり自信なし(実験に使とるマシンはセレロン400MHZ、使いものになるか どうかギリギリぐらいの速度やけど、本番で使おう思とるんは、PENV800MHZ、少しはまし になると期待) 2台のマシンから次々に追加されるレコードは、主キーあり、これはオートナンバー。 同時とはゆうても、実際には入力のタイミングにずれが生じとるので、今のところ、この オートナンバーにも問題はないみたいやけど、本番で偶然、奇跡的に、本当の同時ゆう ことが起こってしもたら、どうなるんやろ?
527 :
名無しさん@そうだ選挙にいこう :02/02/27 13:09
Accessのファイルを読み込んだときに、すぐにメインパネルのフォームを 表示するようにしたいんですけど、どうしたらいいんでしょうか? マクロかなって思うんですけど、起動して すぐにとなると、わかんないです。
245です。 今会社にきまして、これから打合せです。 やはり返事くれましたねー。 ありがとうございました。
また245です >473で聞いたのは >463さん。教えて下さい。 >[区分]=1 女 2 男 >レポート[氏名]で、女は赤色、男は青色に表示するのは >どのように記述したらいいのでしようか、教えて下さい。 >怒らないで。 尚 バージョンが97なんです 会社2002で、自宅97です。 他の友達にこれでも教えているんです。 2002は524の言われる通り、 『書式』から条件付き書式選んでとあるんですが、97にはないんです。 97は知るかーーーー と言わないで。
いきなりですみませんが、『 ディスクまたはネットワークのエラー 』 というエラーで困りまくってます。 LANで、親機にデータを置いておき、クライアント(WinXP)が 親機のデータを共有している状態なのですが・・・ ちなみにAccess2002のランタイムなのですが どなたか同じような経験された方いらっしゃいますか?
<<245 97は知るか (2000しか使ったことないド厨房や) 条件付き書式がないんでは、俺には代案しか思い浮かばん。 要は、表をぱっと見たとき、おとこおんなの区別がすぐに出来ればええんやろ? 行頭に赤い♀マーク、青い♂マークをつけるみたいのではダメか? どっか適当な場所に、インヴィジブルのテキストボックスを2つ用意する。 中身はもちろん、赤い♀マーク、青い♂マーク。 で、表の行頭にもテキストボックスをひとつ。コントロールソース=IIf([区分]=1,[赤い♀マーク],[青い♂マーク]) これでわ不満か? そか。 もういい。 俺は眠い。 ついでに、遅い昼飯食ったら、気持ち悪くなった。 便所に行って、便器に顔突っ込んで、失神したい。 じゃな。
>527
ツールに「起動時の設定」ってあるでしょーが。まずはやってみ。
ついでにマクロでやるんなら、アクションを「フォームを開く」で指定。
マクロを保存するとき、Autoexec って名前にするだけでオッケー。
>526
実際、処理速度なんてモンはハードスペックによるものもあるけど、
MDBでJetな場合、特に検索処理の仕方一つで処理が何倍もかかる場合が
多々ある。
定義域集計関数、Find系関数使ってたらかなり時間食う。
同時にレコードが追加された場合って想像つかん。最悪、主キー違反で
処理が止まる程度だろうけど。
>245
あのな、このスレ始まってからずっーと観てるし、レスもしたけど、
君の発言、何か「ネタ」くさいんだけど。
条件書式の件なんか、
>>362 において、お前 Ac2000って名言しとるし。
533 :
486=超初心者 :02/02/27 22:40
>>533 誰もRESしないってことは、あなたの質問の意味が誰も理解できないってことです。
535 :
486=超初心者 :02/02/27 23:18
>>534 ・・・わかりました。申し訳ありません。
夜も遅なっていきなり頭がはっきりしてきた〜
つーか、やけにハイ
>525
その後の報告
商品マスター約9000件、顧客マスター約8000件のデータ使って、2台のマシンから矢継ぎ早に
入力実験を約200件、これを3回繰り返し。
入力データは、いくつかのフォームからあれやこれやのプロセスをたどって3つのテーブルへ
テーブル1 : 売上ナンバー(=オートナンバー=主キー)、顧客CD、日付、時刻、担当者CD
テーブル2 : 売上ナンバー、商品CD、点数 (売上ナンバーと商品CDにまたがった主キー)
テーブル3 : 売上ナンバー、支払い型CD、金額 (売上ナンバーと支払い型CDにまたがった主キー)
俺の技量ではどうしてもDLookupの使用を避けられんフォームがあって、そこではやっぱり
ちょっと時間がかかるけど、これはスタンドアロンで使てるいまでも同じこと。ま、入力
担当者が我慢できんほどではないと思う。
Find系何とかゆうのは知らんから使てない。
更新については、今までは1件の入力が確定するたびに商品マスターの在庫点数から引き算
させてたけど、このやり方はもちろん変更。ためといてガッと行きます。
DAO、ADOについては今のところ心配は御無用。
そもそも、そんなものをばりばり使いこなすほどの技量が俺にはねいです。集計用のmdbで、
仕方なく何カ所か使たことがある程度で、この入力用mdbには全然ねい(ほとんどクエリで
やった。モジュールも、自作関数ほんの少しと、API用ほんの少し)
つーか
この入力用の仕組み、基本部分については、俺がまだVBAなんてもんをよく知らんかった頃
つくったもんやから(ざっと見返して、修正の欲求にかられる箇所はあんまりない。我ながら、
こぢんまりチャーミングにまとめられたと自画自賛)
同時追加に関しては
腹くくります。
運を天にまかせます。
考えてみれば、腹くくらなあかん部分てのは他にもあるもん。どうしたってそういう部分は残るわ。
てなわけで
実験はたぶん成功
来週早々にも発進予定。
明日は午後出勤
アルコールプラスアセトアミノフェンで腐るまで寝るわ。
>>245 ははん?ネタ?そーかい。もうええわい。
((( ゚д゚)))ガクガクブルブル
>536 課内、係内のちっこいシステムみたいなら、そんでオッケーなところでもあるな。 教科書みて覚えるよか、実際に小さいなりにシステム走らせた方が何倍も身につく。 まぁ、現場デバッグっつーか、虎の穴っつーか。 DlookUp は経験上、テーブル件数が5000件程度までが限度。それよかレコードが 増えだしたら、SQLでデータを引っ張ってくることになるハズ。 ま、頑張れや。 245 については自分が単にネタくさいな、と感じてるだけ。どことなく 試されてるよな気がするのよ。 >523 言いたいことはワカランではないけど、メンテナンスフォームの「開く」イベント に以下の通りかいてみれ。 Dim strPassword As String strPassword=InputBox("パスワードを入力してください") If strPassword<>"パスワード内容" Then Msgbox"パスワードが違います" Cancel=True Exit Sub End If 何か機密性低そうだし、こんなんでイイんじゃね? アカウント設定するのもアリだと思うし、方法は色々あるよ。
おはようございます。 きつい一発がきました。また他でも色々言われました。 私試すほど知識はありません。またそうした興味もありません。 他の仕事もやらされてますし。ただ教えてほしいのです。 97を教えていると言うのは、同窓幹事辞めたいので、今他の人に頼んで居る所です。 ここでは3台繋いでいます。 2002はつい最近購入しましたが。 インストは1台だけですよねー、で他の2台は2000です。 >531 コントロールソース=IIf([区分]=1,[赤い♀マーク],[青い♂マーク]) これでわ不満か? 不満です、赤が、たしか255で、青が16776960だと思うのですが。 そこの記述を教えてほしいのです。
541 :
アクセス始めて2日目 :02/02/28 10:18
申し訳ないんですが、どなたか教えていただけないでしょうか。 クエリの抽出条件としてフォームのテキストボックスから参照したいので、 下記のとおり入力(式ビルダを使いました)しました。 検索フォームのテキストボックス0を参照 Like [Forms]![検索フォーム]![テキスト0] これで正常に抽出は行われたんですが、実はこれにワイルドカードを 使いたいんです。 例えば検索フォームのテキストボックス0に 田 と入力したとします。 そしたらクエリで 田 という文字が含まれてるものを全て抽出したいのです。 テキストボックス0に *田* と入力すれば、抽出されるのは解ってはいますが、 Like [Forms]![検索フォーム]![テキスト0]にワイルドカードを組み込む事は できないのでしょうか?どなたかご教授をお願いします。
>>541 えつ、アクセス始めて2日目
私もう3〜4年やっていますが、質問すら理解できません。
これ言うから怒られるのかなー。
見てたものですから、つい
きにさわったら、ごめん・
543 :
アクセス始めて2日目 :02/02/28 10:42
>>542 いえ〜いいんです。
おそらくあまりにも超初心者な質問でしょうし、私自身うまく説明できてないなって
なんとなくわかりますんで・・・。
もうちょっと上手く説明できるよう、考えてみます・・・・・。
544 :
名無しさん@そうだ選挙にいこう :02/02/28 10:53
>541 Like "*" & [Forms]![検索フォーム]![テキスト0] & "*" やってみれ。 Access以前にVBでもExcelのVBAでも経験があるなら(またはCとかね) いいけど、多分無いだろうから、意味わかんないと思うけど。 二日目にしちゃ中々分かりやすい質問でよろしーが、次の投稿時は 今よか30分でも悩むようにしようね。
>>544 ありがとうございました!解決しました!
超初歩的な事にもかかわらず、昨日の夜から悩み続けてました(馬鹿ですみません)
もうくだらない質問でご迷惑おかけしないように頑張ります。
本当にありがとうございました。
>>545 レスつけようかと思ったら、
>>544 でもうレスついてたから、
書かないけど、本当にAccess始めて2日目なら質問の仕方としては
的確だと思うよ。
Excelに比べると複雑なソフトだけど、あせらずに勉強してね。
むしろ
>>245 =
>>542 が、3年やってるのかどうかを小1時間…
>>245 3年やってるなら、少しは自分で考えたらどうだ?
特に540での書き込みはちょっとムカツク。
「ただ教えてほしいのです」とか「不満です」とか。
何様のつもりだ??
ちなみにレポートだったら、条件付書式使わなくとも、似たようなことできる。
ヒントは次のとおり、後は自分で考えなさい。
・「詳細セクション」の「フォーマット時」イベント
・「テキストボックス」の「ForeColor」プロパティ
・ マクロの「値の代入」アクション
ちなみに俺もAccess歴3年め...ね。
>>547 >特に540での書き込みはちょっとムカツク。
なら書くなよ(w
フォームでも、簡単にやっているが(w
漏れは、こんな奴に教えるつもりはないし(w
出来ました。ありがとうございました。 報告します。 マクロ 条件[Reports]![レポート名]![区分]="1" 値の代入 アイテム [Reports]![レポート名]![氏名].[ForeColor] 式 255 ここの[氏名].[ForeColor] かんまにしてましたそれとForeColorを 知らなかったのです。ほんとです。 ありがとうございました。 VB勉強します。
550 :
名無しさん@そうだ選挙にいこう :02/02/28 17:56
削除クエリーを作って実行したら、 「指定されたテーブルから削除できませんでした。」 と言われ、ヘルプを表示すると 「指定されたテーブルから削除できませんでした。(Error 3086) (略)次のいずれかの理由により、データベースが読み取り専用として開いています。 」 と書いてあります。 ですが、読み取り専用にはなっていなくて、 テーブルを開いての削除は可能です。 このような場合、何が原因と考えられるでしょうか? 単純ミスだと思うんですけど、さっぱり思いつけません。 たすけて…
>550 ものすごく基本的な確認なんだが… その削除クエリー、選択クエリーに戻した状態では更新可能なのか?
552 :
名無しさん@そうだ選挙にいこう :02/03/01 00:04
すみません、ものすごくおバカな質問かもそれませんが きいてやってください。 初めてACCESSいじったのですが、レポートをプリントアウトするときに EXCELみたいに縮小や拡大はできないのでしょうか? よろしくお願いします。
プリンタドライバによるから同じパソコンなら出来るだろう
554 :
名無しさん@そうだ選挙にいこう :02/03/01 01:20
>552 できません。出来れば便利なんだけど・・・・
レスあるがとうございます。 >553 プリンタ側で設定すると、縮小はされるのだけど、 改ページされてしまうのです。(2枚になってしまうものを 1枚でおさめたい時には使用できません。) >554 っていうことはできないのですね・・・。 つくりなおしだ・・・。ウツ。
>>551 反応ありがとうございます。
選択可能なんです。だから条件の書き方は違ってないと思うんですが。
選択可能であることと更新可能であることは、決してイコールではないと思われ
>>538 レスありがとうございます。
でも、ちょっとエラーが違うようです・・・すみません。
みなさん『 ディスクまたはネットワークのエラー 』ってエラー出たことないのかな?
どういうときに、こういうふうになるのかがわかれば、だいぶ楽になるのですけど
>>557 ええ、イコールではないから実際に削除ができないんだと思うんですが。
すっごく単純なことしかしてないつもりなのにダメなんで、
絶対私が悪いと思うんですけど、どこが悪いのかわからない〜
>>559 更新可能かどうかってのは結構単純な話で、
他のテーブルを連結するだけでも途端に更新不可能になるよ。
とりあえず、削除クエリのSQL文をココに貼り付けてみるとか
わかる人が見れば判る話かもよ。
ハナシガ グチャグチャニ ナリソウナ ケハイ
ヒ ニ アブラヲソソグワケデハ ナイガ
ショシンシャ アイテノ セツメイトシテ テーブル ヲ レンケツサセルト トタンニ コウシンデキナクナル トイウノハ イカガナモノカ
レンケツノ サセカタ シダイデハ イクツデモ イケル
ジサーイノトコロ ドンナ クエリガ コウシンカノウデ ドンナ クエリガ コウシンフカノウカ
ヒトクチデ セツメイスルノハ ムズカシイ
イマジネーション ロンリシコウ トモニ カンキデキ
アアナルホドト ドンナショシンシャデモ ウナズケルヨウナ セツメイ
オレニハ デキンゾゴルァ
ツカエナイト イワレル Ac2000ノ ヘルプ アタリガ
コノバアイハ アンガイ ヨイカモシレン
サブン ヲ トタ クエリ イワユル フイチクエリ デ
サクジョニ コマタコトノアルヤツ コノナカニ イナイカ?
オレハ イゼン ミゴト コイツノ ワナニ ハマタ
イヤ ダカラ ナニガドウシタ トイウワケデハナイ
コイツハ サクジョデキマセン ナンテ メセージハ ダサナイ
サクジョシタ フリヲシヤガリ ケキョーク ナニモシテクレナイノダ
ミンナモ フイチクエリニハ キヲツケヨウネ
オクレバセナガラ
オレモ Acツカイハジメテ 3ネンメデスガ ナニカ?
VBAハ 2ネンメデスガ ナニカ?
ジョウケンツキショシキナシデ レポートノモジイロ カエルホウホウ オモイツキマセンデシタガ ナニカ?
>>559 トトート モンダイノ サクジョクエリノ SQLブン ハレヤゴルァ
コノ スレ イマノトコロ テイレベルアンテイ ヂベタハイズリマワリジョウタイ
ヨテ
ドンナチューボーカキコデモ オコランデ ツキアテクレルヤツガ デテクル ハズ
>>558 半角板かよ。
まあマターリ逝こうや。
558の云うことも判るけど、初心者ってのは、
ピンポイントで狙うかのように更新不可能な連結をしてくれるケースが多いんだよ。
この場合は、ああ書くことで削除クエリのSQL文をアップしてくれれば
解決が早いだろうと思ったからなんだわ。
細かいコトは確かに一理ある指摘だと思うよ。
558じゃなかったすまそ。561
564 :
名無しさん@そうだ選挙にいこう :02/03/01 20:51
ACCESS97のファイルサイズの制限は2GBだったけど、 OfficeXPにはいってるACCESSの方は、制限どうなったのか ご存じのかたいらっしゃいますか?
>>564 もしかして画像ファイルか何かをダイレクトにぶち込もうとしてる、とか?
それだったら、何ギガバイトあっても足りないと思う。
ふつうの文字列データでも、想定サイズにギガバイトなんて数字がでてくるようなら、
やっぱりAccessは選択肢からはずしたほうがよさそう。
制限サイズめいっぱいまで使おうなんて、やめたほうがいいよ〜
いろんな意味でこわいから。
そもそもAccessってさ、業務の効率化にあんまりお金をかけられない中小零細企業の
選択肢じゃない。
マスタテーブルでせいぜい数万レコード、いちばん縦が長くなる履歴テーブルでも
数十万レコードってところじゃないの。
たとえば1フィールド20Bで5フィールドあったとして、1GBったら、1000万レコード(計算あってるか、おい)
これ、うちの社でいったら、200〜300年分のデータ量だよ。
566 :
名無しさん@そうだ選挙にいこう :02/03/02 12:48
>>536 なんでテーブルを3つに別けてるのかな?2つでいいと思うんだれど。。。
テーブル3はテーブル1へ、商品CDごとに支払い方法が違うのならテーブル2へ
まとめればいいんじゃ?
567 :
名無しさん@そうだ選挙にいこう :02/03/02 13:01
>>565 564ではありませんが。
マスターテーブルが複数あって、数十万件のデータ・テーブルがこれまた複数ある。
さらに更新系の複雑なクエリーが何百本(VBA組めないのでクエリーでやる)
あればすぐに数百Mバイトになってしまう。
数十万件のレコードをアクセスで処理しようというのは 一般的には無謀といわれるのではありますまいか。
569 :
名無しさん@そうだ選挙にいこう :02/03/02 14:03
>565 正論。そもそもAccessは企業の選択肢にはならない予定 だったね。まして、2GBなんてMDBは扱いたくもない。 それと、>567 に追加しておけば、Ac2000のロックのかけ方 次第で、数万件程度のモノでもギガバイト逝ける。 つーか、2GBって、OSによってファイル制限の方が先にくると 思うんだがね。 普通は設計段階で回避するか、OraかSQL-Serverを選択するかな。
570 :
名無しさん@そうだ選挙にいこう :02/03/02 14:17
564の質問はただの興味じゃないかと思ったんだけど、違うのかな。 運用する気はないけど、そのくらいまでいけるのか試したい気はする。
571 :
名無しさん@そうだ選挙にいこう :02/03/02 15:39
>>567 テーブルを置くMDBとクエリ・フォーム等を置くMDBを分けて作るのは
よくやると思う。同じようにでかいorでかくなるテーブル専用のMDBを
それぞれに持つってのはどうだろ。
ちなみに2002は使ってないのでわからないけど、2000も2GBまで。
ちょっと補正させてください。 Jet-DBEngineのというかmdbファイルの容量上限 Access97まで -> 1GByte (Jet-DBE3.5) Access2000以降 -> 2GByte (Jet-DBE4.0) なのです。
>>571 よくやるとゆうか・・・んなもん常識だ
漏れは本体・work・マスタ・データに分けてるし(w
ちなみに漏れの作ったmdbは300万件以上入れても
そんなにスピードは落ちん(テスト上では(ww
>566 ん? 俺のこと? 支払い型は、1件の売上につき1種類とは限らん、てゆうだけでは説明にならんか? 合計???円、そのうちいくらはXXで、いくらはZZで、のこりはPPで、みたいな。
じゃぁ、俺も補足させて。 あと、Access2000からUnicode対応になったから、半角文字でも2バイトで管理している。 なので、単純にAccess97の倍のデータを格納できるわけではない。
576 :
名無しさん@そうだ選挙にいこう :02/03/03 01:38
素人の質問で、既出かもしれませんがすが デザインの同じテーブルが複数ありまして それをひとつのテーブルのように見せて 検索したいのですが クエリーとかでできますか? ヒントでも教えていただけると助かります
577 :
名無しさん@そうだ選挙にいこう :02/03/03 08:14
おはようございます。 ユニオンクエリとか?
>>577 ありがとうございます
ACCESSのヘルプで「ユニオンクエリ」を調べて
やりたいことができました。
削除クエリーでテーブルが更新できなかった
>>550 です。
>>551-562 でお答えいただいた皆様、ありがとうございました。
わからないなりにあれこれ試した結果、やりたいことが実現できました。
(なぜ更新できなかったのかはイマイチわかってないのですが)
削除できないとは更新できないということだ、とか
選択可能だからと言って更新可能とは限らない、とか
社内セミナーの講師までしてるくせに実際にシステム構築したことがない私には
大変勉強になりました。
ありがとうございました。
564です。 皆様レスありがとうございます。 >571,572さん やはり2002も2GBでしたか。うーむ、残念です。 あと572さんのおっしゃる通り、97は1GBでしたね。すみません。 時系列でデータをどんどん蓄積してるのと、あとクエリーや モジュールが沢山あって集計したりしていると、そのくらいに なってしまっているのが現状です。まだ越えてはいませんが。。 それで制限が緩和されたのでは?と期待を込めて調べて いたのですが、マイクロソフトのサイトを見てもわからず 困っていたところです。どうもありがとうございました。
>>580 バックアップモ タイヘンソウダナ スナオニmdbブンカツスルッチ
>>581 同意
漏れも時系列で増えるようなdbなら、日別(月別)にテーブル分けて
更新も自動的に分割バックアップするような仕組みにするだろうな。
分割すりゃ何Gだろうが関係ないしな(W
583 :
名無しさん@そうだ選挙にいこう :02/03/04 21:31
「クロス集計」と「式ビルダ」を どのように説明すればよろしいでしょうか。
(W キモチワルイ
585 :
名無しさん@そうだ選挙にいこう :02/03/05 23:37
FormにはTextBox[テキスト1]が貼り付けてある。 クラスモジュールで Me,テキスト1.Text=Date() とやると、「フォーカスがあってないぞゴルァ」と怒られる。 ところが Me![テキスト1]=Date() とやるとすんなり上手くいった。 VBAの標準書式って上の方だと思うんだけど、なんでACCESSだと失敗すんのかな?
586 :
名無しさん@そうだ選挙にいこう :02/03/06 00:35
質問させて下さい。 クエリで、あるフィールドをグループ化 したら、同じ値はひとまとめになります。 そして各々のグループに入ってるレコードを カウントしたりして集計します。 そしたら、「同じ値」と言う条件以外のグループ化 は出来るのでしょうか? 例えばグループ化したいフィールドに1000までの 色々な数字が入っているとして、 0から150までと、300から600まで、500から750までとか バラバラな条件のグループ達を同じフィールドに 並べる事は出来るのでしょうか?
>>585 TextじゃなくてValue
Textを使いたかったらフォーカスをあわせろゴルァ
>586 モシモシカンスウ ツカエ モシ 0>=[数字] And 150<=[数字] ナラ(・∀・) モシ 151>=[数字] And 300<=[数字] ナラ ( `Д´) モシ 301>=[数字] And 450<=[数字] ナラ(´∀`) ・・・・・ ・・・・・ モシ ハ 20コ30コ40コ カサネテモ タブン ショリソクド ニ エイキョウ ハ ナイ タダ トジカッコノ カズハ マチガエナイデネ オコラレルカラ
>585 下の方は、Me![テキスト1].Value=Date() であって、 省略されているだけ。さらに言うなら ! は使わないのが ベター。文法的に古いんで、今後サポートされなくなる可能性がある。 正しくはこう。 Me("テキスト1").Value=Date()。RecordSet なんかも Rst.Fields("フィールド") が望ましい(実行速度にも 多少ながら差がでるよ)。 >588 ぴゅう太を思い出す、って言ったら年齢がバレるな(w
>>588 アリガトネ ナントナクカンカクテキニワカタヨ
モシモシカンスウ シラベテミルヨ
Dim rs0 as DAO.Recordset に対して、 rs0.Sort= "@@@@@@" がエラーになる。どうすればいい。
592 :
名無しさん@そうだ選挙にいこう :02/03/06 11:58
商品情報の管理について質問です。 商品マスタテーブルがあり、商品名、価格などのフィールドがあります。 価格は価格改定などで変動します。 ただし、変更前の価格も情報として残しておく必要があります。 この場合どのように管理するのがベターだと思われますか? ・商品名を重複させて入力日をつけ判別する。 ・価格テーブルを作成しリレーションで管理。 などは考えました。 これらはあまりスマートではないと感じることと、 商品一覧表示(価格は最新のものを表示)したいときに どのようにすればよいかよくわからないという問題があります。 アドバイスお願いします。
594 :
名無しさん@そうだ選挙にいこう :02/03/06 17:38
日付と価格フィールドがあり品番などでリレーションした nテーブルと商品マスタで最新の価格が表示されるような Select分のビューを作成する。 そのビューを商品マスタとして使う。 消費税の変動なんかと同じ考え方でいけると思う。 ヘルプでセレクト文のTOP述語を探せば解決すると思う TOP n [PERCENT] 述語 先頭または末尾から指定の数までの間にあるレコードを、 ORDER BY 句によって決められた順番で返します。
595 :
名無しさん@そうだ選挙にいこう :02/03/06 21:13
「クロス集計」とは何でしょうか。 回答をお願いいたします。
それ以前に
>>592 は品番とか商品コードとかのキー項目について
考慮はしてるんだろうか?
発言の中で全く触れてないのが気になる…
>>594 これから調べてみます。ありがとうございます。
>>596 どういう意味でしょう?
全部書いても無駄かと思って省略しましたが・・・。
商品コードというフィールドはあります。
主キーは別にオートナンバーでつけているので
商品コード・名を重複させることは可能です。
ただあまりきれいじゃないだろうなと思ってますが。
(商品コードを主キーにしていないことは無駄だといわれれば言い返せませんが)
>・商品名を重複させて入力日をつけ判別する。 >・価格テーブルを作成しリレーションで管理。 >などは考えました。 >これらはあまりスマートではないと感じることと、 設計のスマートさにこだわる方、とお見受けしましたが 商品マスターの主キーが商品コードでない状態については放置ですか? 「あまりきれいじゃない」程度の認識しか持たれていないようですが…
599 :
592じゃないけど :02/03/06 23:32
>>594 難しいな・・・。ヘルプも読んでみたけどサパーリわからんわ。
とりあえず力業で試してみた。
a)商品マスターテーブルに[品番][品名]を設定。主キーは[品番]
b)価格改定履歴テーブルを作るフィールドは[ID][品番][改定日][改定後の価格]。主キーは[ID]
c)販売履歴テーブル(ワーク用)を作る。フィールドは[ID](主キー)[品番][販売日]
d)価格改定履歴テーブルをautoexecで指定したクエリで[改定日]にてソートし、[品番]でグループ化した結果を
新テーブル「価格マスター最新版テーブル」に出力
e)autoexecマクロで「価格マスター最新版テーブル」に主キーを設定(リレーションの関係で)
f)「価格マスター最新版テーブル」と「販売履歴テーブル(ワーク用)」「商品マスターテーブル」から
[ID][品番][品名][販売日][最新版価格]の「販売履歴クエリ」という選択クエリを作る
いずれも[品番]が関連キー
g)上記クエリをソースに入力フォームを作成。入力箇所は[品番]と[販売日]
h)別個に「販売履歴保存用テーブル」を作成しておく。フィールドは[ID][品番][品名][販売日][販売価格]。
入力はしない。(レコードゼロの状態)
i)「フォームを閉じる」イベント時に、「販売履歴クエリ」の全データ切り取り→「販売履歴保存用テーブル」を開き
「追加貼り付け」
これで、価格改定履歴を見たいときはb)の「価格改定履歴テーブル」を、販売履歴を見たいときは
i)の「販売履歴保存用テーブル」を見ればいい。「販売履歴保存用テーブル」はどことも関連付けられておらず、
ただ、「販売履歴クエリ」の1処理分の入力データを切り取り→追加貼り付けしているだけなので、
価格改定が頻繁にされようと、[販売価格]は影響を受けない。
にしても、ブッサイクな処理やな・・・あ〜疲れた。
600 :
カンちやん :02/03/07 02:07
商品マスタはあって定価はあるけど、得意先によって価格を負けることが あって変動するってお客さんが以前あって、結局こういう仕様で作った ことがある。 1.フォームから売上伝票入力時に、商品コードを入力すると、デフォルトの 単価を、商品マスタから売上明細テーブルに転記する。 2.でも、その単価は手で修正可能。 3.なお、過去に取引のある得意先の場合は、1.の処理の代わりに、 売上明細テーブルの過去のレコードから、同じ得意先・商品コードで 最新の単価を抽出してデフォルトの単価として使う。 4.得意先毎単価一覧レポートは、売上明細テーブルを基に作成。 まあ、少々安直過ぎるけど。
サブフォームでのフォーカスについて質問です。 親フォームがあります。その中にサブフォームが二つあります。 サブフォームは帳票形式です。 一つ目のサブフォームの中でタブキーを押しながら 最後のフォーカスまで行くと、そのサブフォームからフォーカスが 抜け出せなくなってしまいます。 最後のフォーカスまで行った後、二つ目のサブフォームの 最初のオブジェクトにフォーカスを移したいのですが、 どのように書けばいいでしょうか? アドバイスお願いします。
602 :
名無しさん@そうだ選挙にいこう :02/03/08 16:36
コンボボックスを使って、商品を一覧から選択できるようにしてるんですが フォームで商品ID入力したら、商品名を表示させれないでしょうか? 〜一覧〜 10 A品 20 B品 で選択したら、フィールドには商品IDの「10」としかでません。 その商品IDの隣に、新しいフィールドを作って商品名を出したいのですができますか?
603 :
名無しさん@そうだ選挙にいこう :02/03/08 17:42
>602 コンボボックスの更新時イベントに次のように書け。 新しいフィールド名.Value=コンボボックス名.Column(1)
>>602 603ノ ホソク
テキストボックス ノ コントロールソース ニ =[コンボ名].[Column](1) デモヨイ
>>601 サイゴノ レコードニ タドリツイタコトヲ ニンシキデキレバ ナントカナルカ
ケンショウシテルヒマナイノデ イロイロヤッテミルベシ
イロイロヤッテミルッテ スキルアップノ キホンアルヨ
>>603 つーか、これだとレコード移動時にマズイ
>>603 (今はやってなくとも後々)コンボボックスの値をコードで変更するように
なったときにもマズイ
607 :
名無しさん@そうだ選挙にいこう :02/03/09 01:35
>>588 ホントニ35コ モシモシカンスウイレタラ
「文字列が長すぎて編集出来ません」
テデタ-ヨ(´Д`;
>>607 ワリィ〜
ムボウナコト カイチマタカ
ソレニシテモ 35コ ヤルトハ (´Д`;
ムダナ クロウ カケチャテ ゴメンネ
ジサーイノトコロ イクツガ ジョウゲン ナノカ オレモシランノダ
タダモンダイハ
タブン ダガ
モシモシヲ カサネタカイスウ デハナク シキノ モジスウ マタハ ソノ バイト スウ ダト オモウ
オレモ ソノ ケイコクヲ ウケタコトガアルガ フィールドメイヤ ヘンスウノ モジスウヲ ヘラシタラ
マンマト ウマクイタ
チナミニ
イマ テモトニアル DBデ ヒカクテキ ナガメノ モシモシシキ
836バイトアルガ コイツハ リーパニ ウゴイテイル
アス シュキーンシタラ マタ ベツナ DBヲ シラベテミルガ(ドヨウシュキーンダ ゴルァ)
オレノ キオクデハ モトナガイシキヲ カイタコトガアル
トリアエズハ
カイタ シキヲ メモチョウニ コピーシテ バイトスウ シラベテミ
タダ
ホントウニ 30イジョウモ ヒツヨウナラ ベツナヤリカタガ アリソウナキガスル
オモイツイタラ カキコスルガ
モシカシタラ
ベツナ ダレカガ フォローシテクレル カモ〜
ネルマエニ ツイ ナントナク ヤッテミタ トリアエズ 26コマデハ ジサクカンスウデ イケルコトヲ カクニン ブサイークダゾ ナゲェ〜ゾ カクゴシロ(VBA 2ネンメ カンベンシテネ) マズハ イカヲ テキトウニカキカエテ モジュールニ ハリツケロ Public Function SjGrp(Suji As Variant) As String On Error GoTo ErrHandler Dim Wk As String If IsNull(Suji) = True Then SjGrp = "" Exit Function End If If Suji <= 150 Then Suji = "a" Else If Suji <= 300 Then Suji = "b" Else If Suji <= 450 Then Suji = "c" Else If Suji <= 600 Then Suji = "d" Else ・・・ ・・・ Else Suji = "z" End If End If ・・・ エンド イフ ゼンブデ25カイ Wk = Wk & Suji SjGrp = Wk Exit Function ErrHandler: SjGrp = Suji End Function デ ツギハ クエリダ 式:SjGrp([数字]) コレダケデ OK デハ オレハ ネル
↑
>>607 26コシカ ジケーン シテイナイガ コンドコソ 50 デモ 100デモ イケソウナ キガスル
>>604 ありがとうございました。無事にできました。
612 :
名無しさん@そうだ選挙にいこう :02/03/09 11:08
顧客名簿で、新規データを入力した時、自動で 過去に同姓同名のデータがあればアラートを出してくれるように したいのですが、どの様にすればよいのでしょうか?
今回のケース、クエリーの中でIIFをネストして使うんでなくて、 わざわざ自作関数用意するんだったら Select Case使ったほうが見やすくないか?
>>613 オレモ ソウオモタ
シカシ オレノ チカラデハ Select Caseデ アタイノ ハンイヲ シテイスルホウホウガ オモイツケナカタ
Case Is >=100 And <=200 トカ
Case Is >=100 And Case Is <=200 トカ
Case Is Between 100 And 200 トカ
コンナ カキカタハ ウケツケテクレネーノ
ソレデ スグニ アキラメチマタ
If〜Then ナラ Elseガ ソノママ アタイノ カゲンヲ キメテクレルシ
ト ココマデカイテ フトオモイツイタ
アタイノ ハンイヲ パラメータニシテ マタベツノ モジュールヲ カケバイイノカ
ホントカ?
イヤ ヨクワカランガ デキソウナキガスル
シゴトノサイチュウナノデ タメシテミルコトハデキナイガ
(ホンギョウハ セキャークハンバイダ ゴルァ!)
>>612 書きなぐりで未検証だけど、こんな感じ?(DAOだけど)
Private Sub 名前_AfterUpdate()
dim rst as RecordSet
if not Me.NewRecord then Exit Sub '新規入力以外の時は中止
Set rst=CurrentDB.OpenrecordSet("select count(*) from テーブル where 名前='" & 名前 & "'")
if not rst.EOF then 'データがあるときだけ処理
if rst(0)<>0 then MsgBox "過去に同姓同名の人がいます" '同姓同名がいれば表示します
end if
616 :
名無しさん@そうだ選挙にいこう :02/03/09 15:00
Select Case 1 to 5 とか Select Case 1, 2, 3, 4, 5 とか Case Is < 5 Return = "A" Exit Sub Case Is < 10 とかね
>>616 パトヨンデ ハジメ イミガワカラナカタケレド
チョトタメシテ ナルホド ト
ク〜 ナンテコトダ
シラナカターヨ
Select Case デ Caseゴトニ タダ Maxチ シテイスレバ
デカイホウハ ソレイカノ Caseヲ ノゾイタ アイダヲ トテクレル ナンテ
Case Is <=100
・・・
Case Is <=200
・・・
ミタイニ カイタラ
コウシャハ ゼンシャモフクメタ ゼンブヲ トルノカト オモテタケド
ソウデハ ナカタワケネ?
ハンイ ナンテ イラナカタワケネ?
Maxチ ダケデ ヨカタワケネ?
ヒトツ リコーニ ナチマターヨ
アーリガト
テ オレハ イターイ ナニヲシニキタンダ
サブクエリで (フィールド)\100 って計算式入れれば100単位でグループ分け出来る
ちょっと相談とは違うんだけど個人住所録を ACCESSで管理してるって言ったらば友人達に 「すげー、あれって難しいんじゃないの?」 などといわれました。 というほどACCESSって敷居が高いんですか?
使い道に迫られてる奴は、嫌でもおぼえる。 使い道のない奴は、一生おぼえない。 って、何のこたあない、他のソフトと一緒じゃん。 面倒くさがりほど上達する。 こんなのはボタン一発で出来なきゃウソだ、とか、楽することばかり考えてるから。
>>608-610 ワタシガネテカラ イロイロヤテクレタミタイデ ドウモアリガトーネ!
シカシ コレカキニクイカラ イカゼンカクネ!
自分も文字数の制限だと思います。
何故かと言うと、各分類名目が全角で十文字
ぐらいもあるからです。無茶でした。
という事は、多少文法で文字数を減らしても
ダメかも、、、。各分類項目を別テーブルに
してそれから参照とか出来るかな、、。その点
も当たってみます。
他の方も教えてくれてありがとう。
しかし100単位とかじゃなくって、
バラバラなんだよな、、、。
623 :
名無しさん@そうだ選挙にいこう :02/03/10 02:02
>>600 > 1.フォームから売上伝票入力時に、商品コードを入力すると、デフォルトの
> 単価を、商品マスタから売上明細テーブルに転記する。
> 2.でも、その単価は手で修正可能。
これってどうやるの?
フォームの「商品コード」更新後イベントで
[販売価格]=[商品マスターテーブル]![単価]
とかやってみたけどどうしても
「このオブジェクトにはオートメーションオブジェクト“商品マスターテーブル”は含まれません」
とエラーメッセージが出る。
クエリをかましてみたり、マクロの「値の代入」を使ってもみたけどどうしても駄目だ。
カタカナ表記やめます。 Accessでの私のシステム構築では、クエリとマクロは一切作らない。 テーブルのデータ形式は、テキスト型、数値型、通貨型しか使わない。また、 特殊な場合を除いて数値型の浮動小数点型も使わない。更に厳密なシステム では、テキスト型しか使わない。 単票形式フォームではレコードソースを指定しない(コントロールは当然非連結) 帳票形式フォームはレコードソースにSQL書くけど、レコードの表示・選択にしか 使わない。つまり、フォームではレコードを更新したり追加削除させず、VBAで 更新処理を記述する。 結構、VBA使わない人がここには多いみたいだけど、もうちょっとスキルアップして、 VBAを使いこなせるようになってみたらいいと思う。今まで悩んでいた事がいとも簡単に 解決できると思うよ。
追記 テーブル名、フィールド名、フォーム名、コントロール名に漢字の名前は付けない。 いちいちかな漢切り替え鬱陶しいから。 最近はレポートもExcel経由の出力が増えたので使わなくなったな。VBを使わず Accessを使うメリットがほとんど無くなってきたかな?
>>624 >テーブルのデータ形式は、テキスト型、数値型、通貨型しか使わない。
理由は何ですか?
オートナンバーは数値型に含めるとして、日付型・メモ型はないと漏れ的には
困りますが(w
>また、 特殊な場合を除いて数値型の浮動小数点型も使わない。
これも理由は何ですか?(想像はつきますが(w)
>更に厳密なシステム では、テキスト型しか使わない。
テキストのみとはどんなシステムですか?漏れは今のところ見たことがないのですが?
>単票形式フォームではレコードソースを指定しない(コントロールは当然非連結)
>帳票形式フォームはレコードソースにSQL書くけど、レコードの表示・選択にしか
>使わない。つまり、フォームではレコードを更新したり追加削除させず、VBAで
>更新処理を記述する。
これも臨機応変ですね、単なるデータエントリーではそんなにこだわる必要もないし
一覧からサクサク入力できるのもAccessのメリットのひとつです。
また、ワーク連結すれば、連結非連結の長所を併せ持つフォーム作成も可能です。
だいたい、そこまでこだわるならVBなどで作ったほうが早いぞ(w
最小の工数で最大の開発効率を得られるVBA環境に慣れてしまうと もうVBには戻れない…
Access使いの多くはさ、 自社のために幼稚な開発の真似事もするけど、本業は別にある、零細企業の社員 て気がすんの。俺もそうだし。 クエリは便利だよ〜 すんげー便利だよ〜 使わせてくれよ〜 頼むからよ〜 フォームのレコードソースにSQL文書くったって、ほとんどはクエリのSQLビューからコピーしてるだけだよ。 どうしても、じかにSQL文書かなきゃなんねえケースって、そーんなに沢山はねえよ。 マクロは う〜ん 最近は使わなくなったけど、規模によっては、使ったっていいんじゃねえのか。 データベースウィンドウがマクロだらけになって、もう何が何だか分かんねえ状態じゃなければさ。 これはクエリについても一緒だけど。そいで、何が何だか分かんなくなる状態を避けるために、 クエリ名を長い日本語にしたりして(まあこれも最近はやらなくなったか) けっきょくコストパフォーマンス、てことになっちゃうのかなあ。 クエリとフォームとマクロと組み込み関数だけで、中小企業の業務効率ってのは劇的にアップするのよ。 Accsessてのは、この部分のコストパフォーマンスはべらぼうにいい。もう信じられないぐらい。 1の努力で100ぐらいの効果あげてると思う。 これでさらにVBAばりばり使いこなせるようになれば、業務効率はまた上がるっていわれてもねえ。 ここらへんのことは、社内でDBまかされた奴の性格つか気質しだいじゃねーのかな。プログラミングが 何となく肌に合って、仕事云々は抜きにしてもそっち方面の好奇心がちょこっとあって、気づいたら いつの間にかいろんなことが出来るようになってた、みたいなのが望ましいんだけどね。 俺が経営者だったらさ、やっぱりVBAのためにガリガリ努力とかベンキョなんかしてほしくねえよ。 んな余力があったら他の仕事しろっつの。
629 :
名無しさん@そうだ選挙にいこう :02/03/10 15:52
>>628 > 俺が経営者だったらさ、やっぱりVBAのためにガリガリ努力とかベンキョなんかしてほしくねえよ。
> んな余力があったら他の仕事しろっつの。
禿げ銅
>>623 の質問にも答えてね
>>626 総合的に言うと、Accessを信用してないんですよ。
>>625 で書いた通り、Access
使うメリットは無くなって来てる。私はVBもAccessも使うので、両方とも同じ
ような作り方をしたいというのもあります。それでもAccessを使っていた理由
は、レポートが素晴らしい(VBならAvtivereportなどを買ってこなきゃ)のと
帳票形式サブフォームの使いやすさ(VB系の各種Gridがいまいち好きになれない)
があるから。
日付型は2000年問題とかで不具合とか出て、一部の日付関数とかにも不具合が
あったので、今は8桁のテキスト型で保存しています。変換関数やチェック関数
はすべて自作。年号もテーブルに保存してあって、すわ平成崩御の場合も年号
テーブルへの新年号追加で処置完了。昭和崩御と2000年問題の教訓からそんな
システムにしています。
オートナンバーはリセットするにはテーブルのDrop,Createが必要(mdbの最適化
でも出来たっけ?)なため鬱陶しい。連番が必要なら最大の番号を検索して+1
メモ型は確かに255文字以上を格納しなければならない備考などには必要かも
しれないけど、なんとなくメインのテーブルに可変長項目持たせるのが気が引ける
のです。どうしても必要なら別テーブル(備考マスタとか)にする。
浮動小数点型は浮動小数点計算が必要なシステムでしか要らない訳で、そんなシステム
は私は今のところ作る必要性ないということ。
マスタテーブルがテキスト形式のみのシステムって、Access単体では私も作った
ことはないけど、Oracle等で作った大規模システムにはありますよ。要は数値型
などの形式はJet独自のデータ保存形式の場合が多く、それに依存したくない場合
に非常に面倒ではあるけれど、どのデータベースでも共通形式であるテキスト型
で保存する。但しワークテーブルはその制限は無し。マスタテーブルにはSumなど
の集計関数がまったく使えないし、素人にはオススメできない。
続く
書いてる間にお客さん増えてたね。私の意見はある程度システム開発専門に
やってる人向けですのでそう思って下さい。ただし片手間に使ってる人でも、
複数のPCからの同時使用までやるなら少しは読んで貰えると嬉しい。
>>626 テキスト形式の補足、Access2000からはテキスト形式がUnicodeで保存される
ようになったので注意が必要。
帳票フォームのサクサク入力は確かに魅力だけど、使うとすればスタンドアロン
のシステムに留めた方がいいでしょう。確かAccessのフォームでレコード更新
する場合、入力を開始した時点でレコードをLockすると思います。Jetでは
レコード単位のLockではなくブロック単位のLockなので、複数のレコードが
入力が終わって更新されるまでLockされます。入力の途中で考え込まれたり
トイレに立たれると、他のPCで作業している人が迷惑します。これはマスタ
を直接更新した場合。
ワークテーブルをフォームに連結させて、フォームを開いた時にワークテーブル
全レコード削除、マスタテーブルからレコードをワークテーブルに追加させ、
ワークテーブルを更新、フォームを閉じるか更新ボタンでワークテーブルの
更新されたレコードをマスタテーブルに書き込むというのは確かによくやります。
伝票入力の明細部分とかほとんどこの方式でしょう。この場合はフォーム入力
でいいと思います。
確かにAccessのメリットは素人から専門家まで帯に良し襷に良しな幅広い使い方
ができる点にあると思います。ただ、データの信頼性やシステムの信頼性という
点では、フォームとマクロとクエリだけで作ったシステムで高い信頼性を築くのは
至難の業ではないかなと思います。もちろんVBAで作ったとしても、信頼性は
プログラム書いた人に依存する訳で、下手な書き方すりゃとんでもなく危険な
システムになります。ただ、ちょこまかした問題の解決(
>>623 みたいな)
にVBAを少し勉強してみると、簡単に解決できたりもします。VBAの本はたくさん
出てますから、少しだけでも勉強してみては如何でしょうか?
蛇足 SQL文書く時は、私はクエリで作ってテストしてみてOKならSQLビューを表示 させてコピペしています。クエリまったく使うなとは言いません。 大昔、Access1.1で開発してたとき、当時はフォームのレコードソースも コンボのソースもSQL書けなくて、いちいちクエリ作ってました。当時はVBA内 でもQuerydefからレコードセット作っていたので、クエリが2000本越えて しまった事があります(ちなみにフォームは149本、テーブルは242本)。 もう訳わかんない状態になってしまって、Access95以降、クエリは本システム 内では使わない事にしたのです。 でもデータメンテ作業などではクエリ作りまくってます。私の最大クエリ作成 数は一晩に300本。データいじくらなきゃならない時にこれほど便利な物は ありません。
>>623 検証してないけど
フォームの商品コードの更新後処理の...のボタンを押してコードビルダを選択
そんでもって以下を記述
Private Sub 商品コード_AfterUpdate()
Dim DB As Database
Dim RS As Recordset
Dim SQL As String
Set DB = CurrentDb()
SQL = "SELECT * FROM 商品マスターテーブル "
SQL = SQL & "WHERE 商品コード = " & Format(Me.[商品コード], "0")
Set RS = DB.OpenRecordset(SQL, dbOpenSnapshot)
If RS.EOF Then
MsgBox "商品コードが商品マスタテーブルにねえずら", 0
Me.[単価] = "" '0でもいいし、送らなくてもいい
Set RS = Nothing
Set DB = Nothing
Exit Sub
End If
Me.[単価] = RS.Fields("単価").Value
Set RS = Nothing
Set DB = Nothing
Exit Sub
End Sub
コントロール[商品コード]がコンボボックスだと、更に簡単にも書ける。
コピペしたらタブが全部無視かよ....ま動作に問題はないけど。
635 :
名無しさん@そうだ選挙にいこう :02/03/10 17:57
>>633 > Dim DB As Database
いきなり「ユーザー定義型は定義されていません」て出るよ。
'As Object' に変えたらそこでエラーは出なくなったけど
Set RS = DB.OpenRecordset(SQL, dbOpenSnapshot)
で「dbOpenSnapshot」の「変数が定義されていません」と出る
>>635 Accessのバージョンは? ちなみにAccess2000より上は知らないスマソ
>>635 OpenRecordsetにカーソルあわせてF1押してヘルプを見て、適当に
書き換えてみて。
>>635 参照設定で、DAO3.6 Object Libraryにチェックすべし。
また、代わりにACtiveX Data Object 2.1 Libraryのチェックを外した方がよいと思われ。
>>638 感謝。バージョンはxpなのかな? Access2000では参照設定にDAO追加した記憶が
ない。標準設定でDAO使えないなんて...やっぱDAO無くなるのかな。寂しい。
>>636 2000だよ
>>635 THX 有効な型として認識されてなかったDatabaseやRecordSetが認識されるようになった。
しかし依然として
Set RS = DB.OpenRecordset(SQL, dbOpenSnapshot)で
「抽出条件でデータ型が一致しません」と出る。
最大の問題は漏れがこのコードの意味するところが殆ど理解できてないということなんだが・・・
>>640 >
>>635 THX 有効な型として認識されてなかったDatabaseやRecordSetが認識されるようになった。
「
>>638 」のまちがい
>>640 >「抽出条件でデータ型が一致しません」と出る。
商品マスターテーブルの商品コードのデータ形式は?
あと、実際のテーブル名とかフォームのコントロール名にあわせて少し
書き換えないといけない部分もあるかも。その辺書き出してくれれば
633を書き換えるけど。
>>642 > 商品マスターテーブルの商品コードのデータ形式は?
文字列型だよ。
> あと、実際のテーブル名とかフォームのコントロール名にあわせて少し
> 書き換えないといけない部分もあるかも。
テーブル名やコントロール名は完全に合わせたつもりなんだが・・・
ただ
Format(Me.[商品コード], "0")
の部分がまずいのかも。テスト版だからとりあえず商品コードは3桁の数字(型は文字列)にしてる
(001とか002とか)
SQL = "SELECT * FROM 商品マスターテーブル " SQL = SQL & "WHERE 商品コード = '" & Me.[商品コード] & "'" でどうだ? もしくは SQL = "SELECT * FROM 商品マスターテーブル " SQL = SQL & "WHERE 商品コード = '" & Format(Me.[商品コード], "000") & "'" しかし参照設定の変更よくできたね....
>>644 thx
商品コードの前後にコーテーションマークがいったんやね
ばっちり単価が代入されるようになったよ!
でもこのファイルって使用者の環境によらず使えるの?
いちいち参照設定をいじらないとだめとか・・・
漏れも例の2001年問題を最初に知らされた時には 激しく脱力したものですが・・・ でも、要は開発サイドがきちんと情報収集して、 きちんと対処できてるかどうか、こそが問題なわけで。 これからも保守員さんは2/29の有無判定に モシ年ガ4ノ倍数ダッタラ… シカシ例外トシテ年ガ100の倍数ダッタラ・・・ サラニ例外トシテ年ガ400の倍数ダッタラ・・・ って記述を続けていって下さい。 漏れはイヤ(w
>>623 の質問だけど
>>633-
>>644 みたいにVBAとかDAOを使うのも勿論いいんだけど
もっと簡単な方法はないのかな?
たとえば商品マスタと売り上げ明細テーブルから「単価」「販売価格」両方を
フィールドに持つ売り上げ明細クエリを作っておき、
フォームでは「単価」コントロールは「可視」プロパティを「いいえ」にしておく。
で、商品コードの更新後イベントで
Me!販売価格 = Me!単価
としてやればいいんじゃないか?
>>645 参照設定変更したのはmdbに保存されるだろうからmdbもっていきゃどこでも
使えるよ。
>>646 もう自前の関数作ってあるからそれを使い続けるだけ(w
>>647 多分商品コードを入力するコントロールはコンボで商品マスターテーブルがソース
だと思うのですが、それなら列0が商品コード、列1が商品名だと思う。これに
列2として単価を追加すれば、[商品コード].[Column](2)で単価が得られる。
こっちを使うのが一番簡単。
>>586 の別解を考えてみる。
数字(数値型)の入ったテーブル「T_数字」と
数字の自(数値型)〜至(数値型)からグループ(文字型)を
決定するテーブル「T_グループ」をそれぞれ作成し、
以下のクエリーを実行すると…
SELECT T_数字.数字, T_グループ.グループ
FROM T_数字, T_グループ
WHERE T_グループ.自<=T_数字.数字 AND T_グループ.至>=T_数字.数字
お望みの結果になると思う。
T_数字の数字にNULLが来たり、予測される以上の数字があったりした場合は
考えてないんで、その辺はまた適宜修正ってことで。
MSDEの話もいいですか? Win2000にOfficeXPのMSDE2000をインストールして osqlを使おうとしたとき osql -U sa -P とすると、 ユーザー 'sa' のログインに失敗しました。理由 : SQL Server の 信頼関係接続に関連付けられていません。 と怒られます。標準ではsaユーザーが使用できないように なっているという情報は得られ、それがいけないのかと osql -U administrator -U adminのパスワード とすると ユーザー 'administrator' のログインに失敗しました。 理由 : SQL Server の信頼関係接続に関連付けられていません。 と怒られます。いったいどうしたらよいのでしょうか?
>>647 > フォームでは「単価」コントロールは「可視」プロパティを「いいえ」にしておく。
フォームのレコードソースが明細クエリならばわざわざ非表示属性の「単価コントロール」を
つくらずとも「Me!単価」で値を参照できると思う。
>>646 漏れは、日付の判定については、一旦date型に変換して
エラーにならなければOKとしている。
2/29は関係ないな(w
>>652 だからその変換後の「Date型が信用できない」って理由で
わざわざテキスト型使ってるんでしょ。保守員さんは。
日付型の使用を否定する一方で、しかしCDate()を始めとする
日付関数の恩恵に授かりたい、ってのは…
ワガママというか、ポリシーが首尾一貫してないと思うが、どうか。
>>649 ソレ ━━━━━━(゚∀゚)━━━━━━イイ!!
ズート マエ
マダ VBAモ SQLモ シラナカタコロ
クエリデ アソンデテ ナントナク デキタヤツ
ショトク カラ ゼーキン ヒパーリダスノ
オモイダシターヨ
ハジメニ ジブンデ カンスウ ナンテ カイチマタ セイカナ
サイゴマデ カンスウノ ドロヌマカラ ヌケダセナカタ
ハズカシ
チューシュツジョーケンハ [--]![--] デモ [--].[--] デモ イイノカ
ソウイエバ チョトマエ ダレカガ ! ニツイテ ナニカ カイテタナ・・・
ホシュイン サンノ イケンニハ オームネ サンセー
ツーカ
ハジメハ モシカシテ プログラミングデキネー シロート バカニシテンジャネーカト オモタケド
ケコーシンケンニ ヨノナカノ システムノコト カンガエテルナ テ チョトカンドー
タダ
ショシンシャ シロート チューボーノ ジジョーモ ワカテチョーダイ(オレハ ショシンシャデハナイケレド シロートチューボーノ イキハ ヌケダシテイナイ)
プログラミング デキルヤツガ Accsess ツカウンジャナク
Access ツカイハジメテ シバラクシテ ハジメテ プログラミング ナンテ ブッソーナモノニ デクワスノ
ドレダケ ビビルカ ソーゾーシテ
623ノシツモンニ DAOデコタエルノハ チョトヤリスギ
クエリデヤルノハ キワメテコンナン トカ マズフカノウ トカ ソーユーカベニ ブチアタタトキニ DAO ツカウモンダト オレハ オモテル
カナだけだと読み辛い上に長文と来たら、まず誰も読まない
>>653 漏れは保守員殿ではないので(w
ちなみに漏れはDATE型で設計している(w
日付の入力の場合
(年必要な場合)・月・日で入力しそれで登録時にチェックして
Date型に変換し登録しているからな
657 :
名無しさん@そうだ選挙にいこう :02/03/11 12:15
>保守員 とりあえずDAOは3.6で中止、Ac2000以降はADO使えってカンジでM$が 推奨しておるね。ちなみにADOは2.6まででてると思う(Xpで確認)。 DAO(自分はAc2.0あたりから触ってるが)が消えゆく運命にあるのは 悲しい事実だけど、未だにローカルな環境で使うぶんには、DAOの 細かいオブジェクトとその速度はADOやADOXにも勝る。 で、日付型使用に関してはケースバイケースかな。何でもかんでも テキストでもってるとデータ振りまわすときにキャストしなきゃいけない 場面が出てきて、しかもそれがLoopに入ってたりしたら結構実行速度が 気になるときもあるし。ロジックに自信があればテキストオンリーも わるくはないと思うけど。 単純に環境下でメリット&デメリットを天秤に載せて、メリットが多ければ 使うってだけのはなしなんだが。 >654 何だかDAOとVBAの区別が付いてないみたいだけど、いちいち半角カナで 入力する必要性って何?読みにくいだけなんだけど。
658 :
名無しさん@そうだ選挙にいこう :02/03/11 13:54
宜しくお願いします。 多数有る商品の写真【JPEG画像】を管理したいので、 フィールド作成でOLEオブジェクトを選択し ドラッグ&ドロップで画像を張り付けて フォームてで表示を見たのですが変なアイコンにしかなりません。 BMPの画像をドロップすると画素が荒すぎて なにが張ってあるのか分かりません。 容量を少なくしたいのでJPEG画像で確認できるように したいのですがどうしたらよいでしょうか。 初心者なので間違っている所が有ると思いますが、 お願いします。
245です。お久しぶりです。 いつも怒られているんですよ。
>
>>658 バージョンは ?
>
>>658 私の場合は2002です。
フオーム 該当OLEオブジェクトフイールド、クリツク
挿入オブゼクト フアイルから
でいける筈です。
以前、JPEGでもドラッグ&ドロップで画像を張り付けいたら、A4図面400レコード
当たりで、動かなくなりました。
もう帰りますので。
すみません書き忘れてました。 2000です。
)フオーム 該当OLEオブジェクトフイールド、クリツク 挿入オブゼクト フアイルから でいける筈です。 いまやってみましたがアイコンしか出ませんでした。 もしかして何かインストールされてないから 画像が出ないのでしょうか?
ちょっと確認したいこと オブジェクト名やフィールド名に日本語使うのはどうか、てことで。 以前そういう話きいて、慌てて改名しようとしたことがあるんだけど、逆におかしく なっちゃったの。 Nameとかって、ダメだよね。いま考えればたしかにダメそうな気はするんだけど。 他にもいくつかあったような気がする。俺の知らないところでも、ダメなやつは 沢山あるはずだと思うの。最近はそれを避けるために、頭に何か文字くっつけたり、 日本語の読みをローマ字表記にしてみたり、なんてことしてるんだけど、何にしても、 後から見返してすごく分かりにくい。 どういう理屈で日本語がダメなのかってのは、説明されて理解できる自信はないん だけど、たとえばこういう処理でこんな不都合か起こるとか、こんな状況の使用で こんな不都合が起こるとか、事故の実例とか、教えてほしい。 使っちゃいけない英単語一覧、みたいなものってあるのかな 分かりやすい英単語ほど何だかダメそうで恐くてつかえねえ〜 恐る恐る英語使うよりは、できれば堂々と日本語使いてえ〜
>>657 さんくす。ADOって同じ会社の奴が「これからはADOだ!」とか騒いでるので
少し使ってみたけど、なんとなく寿命が短そうな気がして....DAOはサポート
されなくなるだけで使えない事は暫くないのだろうけど、今まで作ってきた
資産のADO移行もぼちぼち考えないといかんな〜。
日付型についてはそう、ケースによるというか、作る人が好みに合わせていいかな
と思います。いい加減MSもバグ出さないだろうし。ちなみに私は帳票形式フォーム
なんかでは"20020311"という風にテキストそのまま表示してお客さんには我慢して
貰っている。慣れればそんなに見にくい事もないと思う。絶対和暦表示の官公庁とか
だと問題あるけど。でも入力は和暦だろうが西暦だろうが"/"入っていようがOKにしてる。
推奨は"20020311"または"4140311"(4=平成)だけど、"02/03/11"でも"H14.03.11"でも
OKみたいにね。1回これで作った後は新規のシステムもこれを流用してるから、今となったら
便利です。あと、日付型は表示する時に必ずフォーマットされるので、一覧表示では結構負荷が
かかるとも聞いているので、上記の帳票形式フォームではほんの少し表示速度が上がると思う。
数値型のテキスト保存は、これはもうAccessのみの小・中規模システムでは私もオススメしない。
もう大変(^^;
それから
>>652 >>653 さんの話しに関連して、
私もどうしても使わざるを得ない日付関数があります。Date()とかNow()。
「今日は何日?」とお客さんに入力して貰う訳にもいきませんから、これだけは
捨てられません。MSさんお願いしますよと祈るしかないのです(^^;
>>663 オブジェクト名やフィールド名に日本語使うのはどうか、というのは、私は
VBA書いてる時にかな漢切り替えるのが鬱陶しいというのが理由です。他に
問題があるというのは今のところ聞いたことないです。ただ、よく言われている
のは、一応アメリカで作られたソフトなんだから、オブジェクト名等に日本語
使ってみるテストはしてるだろうけど、それ以外の圧倒的な量のテストは
半角英数でやってるだろうから、半角英数の方が安心じゃないかという理論です。
日本語の名前使っていた頃にやだなと思ったのは、"コード"なんかが勝手に半角カナ
になったり、半角カナの"ー"と半角英数の"-"がごっちゃに使われていたりした事です。
でも"-"は今は使わず"_"しか今は使っていませんが。
使っちゃいけない英単語一覧、ヘルプを探したけどちょっと見つけだせません。
結構あるはずです。私は変数名とかテーブル名とかすべて英数大文字を使いますが、
この場合、使っちゃいけない英単語だと、"CLASS"と打ったのに"Class"になったり
しますから判ります。それからかっこ悪いと思われるかも知れませんが、日本語を
そのまま英数表記で使うというのも手です。この場合、ヘボン式などで表記方法を
プロジェクト内で統一する(「しゃ」は"sha"であって"sya"は駄目)といいでしょう。
蛇足ですが以前、海外生活経験のある英語が堪能なプログラマに仕事を依頼したら、
変数名とか聞いたこともないような英単語多用されて、あとで手直しするときに
「読めね〜」と泣いた事があります。外国人に見せるシステムでないなら、あまり
英単語に拘らず(BIRTHとかSEXぐらいは可?)、得意先なら"TOKUISAKI"とかの
方がいいと思います。
666 :
名無しさん@そうだ選挙にいこう :02/03/11 23:07
また質問させて下さい。 あるフィールドの既定値に入れる関数で、 他のテーブルのフィールドを検索して 値を出す様な事が出来る物はありますでしょうか? もうちょっと具体的に説明すると、 aフィールド、bフィールドを持つAテーブルと、 zフィールド、xフィールドを持つBテーブルが あるとします。 Aテーブルのaフィールドに値が入力されたとします。 するとbフィールドの既定値に入れた関数が、 その値を参照し、Bテーブルのzフィールド にそれと同じ値を持つレコードを検索、そのレコードの xフィールドの値を既定値として入力したいのです。 たぶん私の文章力では言いたい事が伝わらない様な 気がしますが、もし分かれば教えて下さい。
>>664 コマンドプロンプトでDATEなりTIMEなりした結果を
テキストにリダイレクトして加工使用だ。
それ以外の方法は認めん(w
>>666 なんとなく言いたい事は判ります。テーブルのデータシートビューでAテーブルを
開いて、aフィールドに値が入力されたら、bフィールドにBテーブルのxフィールド
が自動的に入るようにしたいと。多分無理じゃないかなと思います。
試しにbフィールドの既定値に=Format([aフィールド],"0")とか入れてみましたが
"aフィールドって何やねん"と怒られます。こういうのは私もやったことありません。
ちなみに普通はフォームで入力させるのですが、その場合はどうにでもできますが。
お力になれなくて申し訳ない。
>>667 さんくす(^^;
気が向いたらやってみます。
>>668 ありがとうございます。
フォームはデータシートビューの見た目が変わっただけ
と認識してましたが、違うのですか。質問が重なりますが、
例えばフォームではどうやって私が言った様な事が
出来たりするのか、簡単にでも教えていただければ幸いです。
>>670 >Aテーブルのaフィールドに値が入力されたとします。
>するとbフィールドの既定値に入れた関数が、
>その値を参照し、Bテーブルのzフィールド
>にそれと同じ値を持つレコードを検索、そのレコードの
>xフィールドの値を既定値として入力したいのです。
つまりAテーブルのaフィールドと、Bテーブルのzフィールドとは同じ性質のもの
(たとえば品目コードなど)が入ると思われるが、それなら最初からBテーブルのzフィールドを
主キーにして関連づけをしておくのでは駄目なのか?
それならAテーブルとBテーブルからa,b,z,xをフィールドに持つCクエリを作成し、
CクエリをレコードソースとするCフォームにはaフィールドとbフィールドだけを配置する。
で、aフィールドの更新後イベントで「b=x」としてやれば同じ効果が得られるのでは?
ただし、Bテーブルのzフィールドの値が重複していないことが条件だが・・・
>>666 >>668 入力はいくらなんでもフォームだろ。
絶対できるって。
もちっと具体的な状況かいてみ。
>>670 フォームの新規作成で元となるテーブルにAテーブルを選択して、オートフォーム:データシート
を選んで下さい。出てきたフォームをデザインモードにして、aフィールドの更新後処理で
Bテーブルのzフィールドを検索してxフィールドの値をフォームのbフィールドに
代入するように処理を書けばよいのですが、その流れは
>>633 以降に凄く似たような
事が論じられてますからそれを参照してみて下さい。ただ、私の方法はVBAを使って
ますからちょっと大変かもしれません。
私がやるとしたら、多分aフィールドに入力できるのはBテーブルに存在するzフィールド
の値に限定されると思うので、フォームのaフィールドをコンボボックスに変更して
値集合ソースをBテーブルにし、zフィールドの位置が左から3番目なら[aフィールド].[Column](2)
みたいな感じでzフィールドの値を取り出します。
VBAで書いていいなら、
>>633 の商品マスターテーブルがBテーブルで、Me.[単価]の
単価がbフィールド、RS.Fields("単価").Valueの単価がzフィールドです。
ちょっと判りにくいかいなとは思いつつ....
書き込みにえらいタイムラグをつくってしまった 鬱
676 :
名無しさん@そうだ選挙にいこう :02/03/12 00:22
>>672 ああ、フォームを作る前にクエリを作ってそれを
基にするのは、そう言う理由だったのか、、、。
それとフォームにそんな機能があるなんて、、。
フォームを見くびってました。
Bテーブルのzフィールドは主キーには出来ませんが、
値は重複しません。
その方法で試してみます。助かりました。ありがとう。
しかし皆さん頭が良いですね。頭の中で分析出来る
んですね。私はテーブルとかを紙に書き、睨み付けて
偶然アイデアが浮かぶのを待つしかありません。
今日は講師の先生方多いな、私は本来の下賤な板で(´Д`)ハァハァしてきます。
>>676 > Bテーブルのzフィールドは主キーには出来ませんが、
> 値は重複しません。
ん?なんでかな?主キーは1つのテーブルに複数あってもいいんだよ。
リレーションの片方に主キーを設定しておかないと更新できないクエリが出来る恐れあり。。。
>>673 すみません。
今更なんですが、具体的に書かせていただきます。
余りにもウチの店ローカルな話になってしまいますので、
ちょっと躊躇していました。
ウチは靴屋なんです。
で、靴の在庫を管理する方法として、
在庫カードと言う紙に、一つの靴を特定する在庫番号と、
そのメーカー名、在庫足数等を書き、それを靴の数だけ
在庫帳と言う帳面に挟んで管理しています。
例えばリーガルのメーカーナンバー9152と言う靴が
何足在庫しているかを、一枚の在庫カードに書き入れて、
そのカードが靴の数だけ在庫帳に挟まっている訳です。
で、その靴が売り切れてしまうと、そのカードを捨て、
同じ在庫番号に新しく入ってきた靴を入れています。
何故捨てるのかは、在庫帳のページ数に限りがあるのが
一つの理由です。
またそれとは別に、日々の売上げの表を付けていて、
在庫番号を書き込む事によってどんな靴が売れたのかを
記録しています。
しかし今在庫帳に載っている靴ならどんな靴が
売れたのか売上げ表の在庫番号を見れば分かりますが、
在庫から外れた過去の売上げからどんな靴が売れている
のかを分析する事は出来ません。何故なら過去の売上げ
表に書かれている番号は、現在在庫帳に同じ番号で
載っている靴ともちろん違うからです。
そこで過去の売上げ靴の分析をアクセスでする方法を 考えていたのですが、まずウチで扱ってきた靴一つ一つ を記録する表、靴テーブルを作りました。しかし、 もちろんそれを在庫番号で特定する事は出来ません。 何度も言うように、新しく仕入れた靴に過去の在庫番号を どんどん付けて行くからです。 そこで新しい番号を設定する事を考え付き、それを 靴が新しく入荷する度に靴♯として番号を振って行き、 靴テーブルは出来上がりました。靴テーブルには 在庫番号も載せていますが、新しい靴が入って来たら、 その新しい靴に在庫番号を譲って、また新たな番号を 付け直します。 そして売上げ分析をする為には、日々の売上げテーブルも作り、 何を売り上げたのかを付けていかなければなりません。 ですが、その時に何が売れたかが分かる手だては、売り上げた時に 靴に付いていた札に書いている在庫番号だけなのです。 つまり、在庫番号を売上げテーブルに付けると同時に、 その在庫番号を靴テーブルから調べ、その同じレコード の中に入っている靴♯を売上げテーブルに入力しなければ なりません。 恐ろしく長くなりましたが、つまりその時に自動で靴テーブルから 売上げテーブルに入力した在庫番号を持つレコードを探し、 そのレコードの靴♯フィールドの値を、売上げテーブルの 靴♯@売上げテーブルに載せたいのでした。 そうすれば在庫番号は死んでも、靴♯はリンクされてますので、 どんな靴だったかを参照できます。 と言う事です。最後まで読んでくれた奇特な方、ありがとうございました。
>>674 ありがとうございます。
やっぱり更新イベントですね。調べてみます。
>>678 そ、そうなのですか。今日は頭がパンクしそうなぐらい
勉強になりました。2chを始めてから一番エキサイティング
した時間でした。ありがとう。
684 :
名無しさん@そうだ選挙にいこう :02/03/12 02:20
フォームに関する質問です。 Aテーブルがあり、B、C、D・・・などのフィールドがあります。 フォーム上に貼り付けた1つのコンボボックスにBフィールド(主キー)の値が表示されています。 それを選択したとき、そのほかに用意しているいくつかのテキストボックスに C、Dなどのレコードの情報を表示させることは可能でしょうか? さらにC、Dなどのフィールドの中身を書き換えたいと思っています。
ちなみにやりたいのはレコードの更新なのですが、 レコード情報を1件1件セレクタで移動させるのを嫌ってのことです。 この方法以外で可能な方法やそういうことはするなという意見でも かまいませんので情報おねがいいたします。
686 :
名無しさん@そうだ選挙にいこう :02/03/12 09:17
>684 うーん、できんことはないっちゅうか、言いたいことが わかりにくいんだが。 試しにさ、Bフィールドの 更新後 イベントに次のように 書いてみれ。 Dim Rst As RecordSet Dim MySQL As String If IsNull(Bコントロール名).Value=True Then Exit Sub MySQL=" SELECT [Cフィールド名],[Dフィールド名] " MySQL=MySQL & " FROM [Aテーブル名] " MySQL=MySQL & " WHERE [Bフィールド名]='" & Bコントロール名.Value & "'" Set Rst=CurrentDB.Openrecordset(MySQL) If Rst.EOF=False Then Me("Cフィールド名").Value=Nz(Rst.Fields("Cフィールド名")) Me("Dフィールド名").Value=Nz(Rst.Fields("Dフィールド名")) End If Set Rst=Nothing Ac2K使ってるときは正常に動作せんかもしれないけど、そんときは VBAの画面開けて、参照設定からADO外して、DAO3.6ってのをチェック してくれ。 DlookUp使ったらもっと簡潔にできるけど、件数の増加に伴って検索 速度が激減するからオススメしない。 ってゆーか多分コードの中身は分からないと思うが、貴方に向上心が あるなら、ゆっくりゆっくり単語一つ一つをヘルプで見て勉強してみて。 ある程度凝った仕掛けを作りたかったら、VBAは必須になるよ。
>>686 どうもありがとうございます。やりたいことができました。
質問は本当にやりたいことをかなり省略してわかりやすく書いたつもりだったのですが、
それでもわかりづらかったようですね・・・。もっと日本語の勉強をします。
コードの内容はASPをやっているのですぐにわかりました。
AccessはあまりさわったことがなくVBAでASPと同じようなこと(言ってること変か)が
できるとは知りませんでした。もっと勉強します。
688 :
名無しさん@そうだ選挙にいこう :02/03/12 17:17
んん?
>>666 の長文へのレスはつかないのかな?
ゆうべ、詳しい状況書けとか言っときながら、やりとりが込み合ってて
割り込むのも申し訳なくて、長文読んでるうちに寝ちまったい。
問題は、支払うデメリットと得られるメリットの差額がどうかってことだけど。
在庫札つけ替えの手間は今までと一緒。
それに商品テーブル書き換えの手間が加わる
売上入力については、手書きがキーボードに替わるだけ。
得られるものはというと、単品別の売上集計。
それで充分だっていうなら、そこで完成とみなしてもいいし。
欲が出てきて、もっともっと手間を減らたいメリットが欲しい、
ってなったら、ま、そのときはそのとき。
欲が出てくるってことは、そこそこいろんなことができるようになってる
ってことだから。
以上、実はプロでも上級者でもない、もしかしたら中級以下かもしれない、
営業の片手間にDBまかされてる弱小企業社員の感想でした。
追)
重複なしで歯抜けの在庫番号から、靴#を引っぱり出すやり方
VBAなるべく使わない方法考えたんだけど、けっきょく野暮っちいのしか
思いつかなかった。
在庫番号主キーにした仮テーブルみたいの用意して、
商品テーブルから在庫番号Is Not Nullの条件で吐き出すの。
あとは
>>674 と同じ
(当然この仮テーブルはしょっちゅう大量のデータが出入りすることになる。
こういうのってあんまりよくないのかな?)
>>666 が、VBAを少し面白いと思い始めるころにはさ、この在庫番号フィールドって
要らなくなってるんじゃないかな。
かわりに在庫点数とかね。
ま、これは希望。
690 :
名無しさん@そうだ選挙にいこう :02/03/12 23:24
>>650 その警告のとおりMSDE2000からは、
初期状態でsaログインすることはできない。
信頼関係を設定して、パスワードをいれればOK。
>>665 モジュール内でAscコード以外の文字を使用していると、
モジュールが破損した場合に、[ファイルの修復] の成功率が落ちる(できない??)。
access専門の話ではないが、Windows で外字を作成したい。 標準ツールってあるのk? あと、Mac 用accessってないのか?
>687 勉強するんだったら、DAO使うよかADOで組んでた方が今後のためだと 思ったりする。 コード上の変更点は少ないから(RecordsetのSetがちと違うくらい)、 勉強した上で独学でやってみて。 DAOよかADOの方が簡潔だし、今後の発展性もある。ちょっとカユいところ に手が届かない場合があったりするけどね。
693 :
名無しさん@そうだ選挙にいこう :02/03/13 13:14
オートナンバーをリセットする方法って有りますか? ヘルプで検索してもそれらしい方法は発見出来ないんですが。
694 :
名無しさん@そうだ選挙にいこう :02/03/13 14:30
>693 最適化
>>693 レコードを全部削除して最適化するか、
そのフィールドを数値型に変換後、いったん保存し、
仮IDをオートナンバー型で新規作成したあと、
元のIDを削除する、でどうだ
696 :
名無しさん@そうだ選挙にいこう :02/03/13 21:16
>>692 ACCESSは中級編まで進んだかな〜と思ってるんだけど、
DAOとかADOとかサパーリわかんない。
そういうのってACCESS VBAの本で勉強すれば詳しく載ってるの?
なんだかんだ言って、DAOはDAOで残り続けそうな気がするな。 ADO(というかADOX)の機能不足、文献不足な現状見てると マイクロソフトがリプレースを本気で考えてるとは 到底思えないんだが…
>>695 >レコードを全部削除して最適化するか
自分の使い方としては、半期に一度、在庫管理用の入出庫テーブルを
アーカイブ保存してから、レコードを全削除し、入出庫レコードの追加
を繰り返すってやり方でして、明細レコードに初めに設定したオートナンバーが
ドンドンでかくなっていくので、どうしようか?と考えていたんですが、
この方法が合ってる様なので、月末にやってみます、アドバイスありがとうございました。
ただ、オートナンバーは42億くらいまで数えられるらしいので、限界までは何年(何十年かな?)
も先みたいですから、それほど困った状態でも無いんですけどね。
699 :
名無しさん@そうだ選挙にいこう :02/03/14 00:09
フォームの入力効率化のために「日付」にカーソルが合うと、 前レコードの日付が自動的に入力されるようにしたいと思い、 以下のようなコードを書いてみました。 Private Sub 日付_AfterUpdate() Me![txt1] = [日付] '[txt1]は不可視属性のコントロール End Sub Private Sub 日付_GotFocus() If IsNull(Me![日付].Value) = True Then '---------日付が未入力の時 If IsNull(Me![txt1].Value) = True Then '------txt1が空なら何もしない Exit Sub Else [日付] = Me![txt1] End If End If End Sub このコードだとフォームヘッダ(またはフッタ)に隠しコントロール「txt1」が必要となります。 またフォームを開けた直後は1つ前のレコードの日付欄に何が入っていたのかもわかりません。 「1つ前のフィールド値」を隠しコントロールなど使わずにもっと簡単に参照できる方法はないでしょうか?
>>699 Private Sub 日付_Enter()
If IsNull([日付]) = True Then
[日付] = DLast("日付", "テーブル名")
End If
End Sub
これはいま使ってるDBで俺が苦しまぎれに使った方法。
以下は、このスレ(前スレだったかも)の過去ログからコピーして取って置いた
やつ。何となくかっこいいんで直そうと思いつつ、面倒でいまだ手をつけていない。
>If IsNull(Me!----) Then
>SendKeys "^'"
>[--]フィールドが更新されたら、更新後のイベントプロシージャで、入力された
>データを既定値に設定
>Me![---].DefaultValue = Me![---]
隠しテキストボックス使うやり方も、それはそれでいいんじゃねえの、という
感じはする。いいやり方か悪いやり方かは知らんけど、そーゆーの俺きらいじゃない。
隠しテキストボックスを変数に変えてもいけそうな気はするが。
まず頭で、
Dim 変数 As Variant
フォームオープンで
変数=DLast("日付", "テーブル名")
日付アフターアップデイトで、
変数=[日付]
日付ゴットフォーカスかエンターで、
[日付]=変数
何かポカがありそうだけど、まあいいや。
頑張ってちょーだい。
みなさん、データベースにセキュリティかけてます? セキュリティは難しそうなので、とりあえず漏れは、 Visual Basic Editorのツール→プロパティの保護でパスワード設定 という方法でやっているのですが・・ でも、最近はネット上でのやりとりも多く、他県のユーザに納品するとき ちょっとセキュリティ甘いかなーとも思うけどどうでしょうか やっぱりセキュリティ勉強したほうがいいかなー
702 :
名無しさん@そうだ選挙にいこう :02/03/15 12:19
>701 それなー、暗号化しようが解読できるツールがあるんだよー。 しかもベクターに登録されているシェアだったりするし。 そもそもMDBにセキュリティなんか期待しないのが普通。 >697 結局のとこ、ADOXでもDAOより不便なところあるし、焼き直しは 頑張ってもらいたいけど、DAO資産ってコボみたく残りつづけていく 可能性はあるよね。ローカルなJet+DAOがADO+SQL-Serverよか処理が 速かったりして、中々DAO捨てるに捨てられないよ。 >696 ADO〜とかタイトルの本も沢山出ているけど、AccessやVBから入った 人間が見ても ハァ?って思うだろうから、厚めのVBA本なら載ってると 思うんで、そっから入ったほうが分かりやすいかも(自分がそうだった)。 オブジェクト.コレクション.プロパティって考え方には慣れておいた方がいいね。
解読できるツールがあるのですか!! こわっ!(w 一応、いままではMDEでやってたのですが MDEって印刷する場合、用紙の設定保存できませんよね(たぶん・・ ユーザがA4しか使わないなら問題ないのですが^^;
704 :
女が男の5倍サイト :02/03/15 14:14
705 :
名無しさん@そうだ選挙にいこう :02/03/15 14:48
>>705 おお〜、これが解読ソフトですか〜、すげ〜
パス忘れたときにはよさそうですね(w
それとMDEでのレポートの設定、2002から設定できるようになったのですか!
さっそく勉強してみます!情報ありがとうございます!
707 :
名無しさん@そうだ選挙にいこう :02/03/15 19:47
>>706 そうですね。うっかりパス忘れた時は最高に便利ですね。(w
だからセキュリティ設定すればいいんじゃないの?
709 :
curl-jp :02/03/15 22:46
[テーブル] ID TYPE NAME MEMO [メニュー] A B C [フォームA] NAME MEMO メニューには3つのボタンがあり、クリックすると各フォーム フォームA、フォームB、フォームCを開き、自動的にTYPEを設定する方法はないでしょうか?
>>709 質問の答えじゃないんだが、TYPEとかNAMEとか
予約語使いまくりなのが素敵(w
711 :
名無しさん@そうだ選挙にいこう :02/03/16 01:04
>>710 709です。
すいません
シンプルに抽象化しようとして墓穴掘りました。
>>712 このスレの中でも、1・2を争う難問だな(w
>>709 俺なりに解釈した上でレスしてみる。
それぞれのフォームを、例えばAならレコードソースは
SELECT * FROM テーブル WHERE TYPE="A"
として、フォーム上にTYPEのテキストボックスを、規定値"A"で
非表示で置くと。
715 :
名無しさん@そうだ選挙にいこう :02/03/16 14:30
1,2,3....という連番ではなく 0001,0002,0003....という桁を合わせた番号で管理する方法はありませんか?
716 :
名無しさん@そうだ選挙にいこう :02/03/16 16:58
案1:文字列型で番号をもつ 案2:内部的には1,2,3...、表示形式を0001,0002,0003とする 私なら迷わず2にする。
案1を選択するのは自由だが 「番号0003に1を足して0004にしたいのに、エラーになっちゃいます」 とかいう質問はしないようにな。
718 :
名無しさん@そうだ選挙にいこう :02/03/17 06:41
初心者です。すみませんが教えてください。 NO 担当者 売り上げ 1 あああ <空> 2 いいい <空> 3 ううう <空> というテーブルと 1 あああ 1000 というクエリをあわせて NO 担当者 売り上げ 1 あああ 1000 2 いいい <空> 3 ううう <空> としたいんですが 1 あああ 1000 だけになってしまいます。どうしたらいいんでしょうか?
720 :
名無しさん@そうだ選挙にいこう :02/03/17 22:16
>>718 結合線を右クリックするとイイコトアルカモ
721 :
名無しさん@そうだ選挙にいこう :02/03/17 23:49
オートナンバーのリセットってどうするのでしょうか? テストデータをいくつか打ち込んでいる内に、カウントが上がってしまって 1番からに戻したいのですが?
>>721 MDBの置いてあるドライブをエクスプローラで右クリックして
フォーマットを選ぶといいよ。
そもそもテストデータ打ち込むのに主キーなんか設定する必要もないだろ? あれは検索や抽出の際のシステム側の利便性だけのために設定するもんだろ
724 :
名無しさん@そうだ選挙にいこう :02/03/18 02:19
フィールドに入力の規則性を持たせられませんか? IPアドレスのフィールドを作成したのですが 192.168.0.1 といった3つのドットに区切られた文字列を入力させたい。 その際、初期値を"192.168."とし、続いて入力した値が、後ろに続いて入力されるように出来ませんか?
725 :
名無しさん@そうだ選挙にいこう :02/03/18 03:49
726 :
名無しさん@そうだ選挙にいこう :02/03/18 09:07
>723 もしかしたら、ADP、MSDE(SQL-Server)な構成なのかもしれない。 主キー設定しないとデータが打ちこめないからね、と思ってみるテスト..... >721 >722 の方法が最もカンタンでベターなんだけど、仕事上困ることに なると思うので、以下の方法をオススメする。 Alt→T→D→C
Access2000でも2002でも起動できるMDEって Access2002でMDE作っただけでできませんよね どうやって作るんだろう?
728 :
名無しさん@そうだ選挙にいこう :02/03/18 19:29
Excelのファイルをシートを指定して起動するにはどーしたら良いのでしょうか?
AccessからExcelファイルをシートを指定して起動するにはどーするんだ? とっとと親切丁寧に教えろ
お前らってパソオタだろ? それなら、即答できるだろ。ボケ
>>721 オートナンバーのリセットをするためにmdbを最適化するとオートナンバーを
含む全てのテーブルのオートナンバーがリセットされるということを付け加えて
おきたい。
それがまずい場合はテーブル作り直し。
・元テーブルをデザインで開いて、名前を付けて保存で適当な名前で保存
・追加クエリーで元テーブルから新テーブルへレコードを移す。
・元テーブルを削除(怖ければリネーム)
・新テーブルの名前を元テーブルと同じ名前にリネーム
>>728-730 ・エクセルでマクロの自動記録にしてやりたい事をしる。
・できたマクロを開いて、それをアクセスのVBAにコピペしる。
・そのままじゃ動かんから何とかしる。
そんな事より732よ、ちょいと聞いてくれよ。スレとあんま関係ないけどさ。 このあいだ、韓国行ったんです。韓国。 そしたらなんか人がめちゃくちゃいっぱいで通れないんです。 で、よく見たらなんか垂れ幕下がってて、日本人は反省しる、とか書いてあるんです。 もうね、アホかと。馬鹿かと。 お前らな、歴史教科書如きでデモに来てんじゃねーよ、ボケが。 教科書だよ、教科書。 なんか親子連れとかもいるし。一家4人で反日デモか。おめでてーな。 よーしパパチョッパリに謝罪させるニダ、とか言ってるの。もう見てらんない。 お前らな、キムチやるからその道空けろと。 韓国ってのはな、もっと殺伐としてるべきなんだよ。 焼肉屋のテーブルの向かいに座った奴にいつ日本人と見破られるかおかしくない、 刺すか刺されるか、そんな雰囲気がいいんじゃねーか。女子供は、すっこんでろ。 で、やっと通れたかと思ったら、別の奴が、従軍慰安婦に謝罪と賠償を、とか言ってるんです。 そこでまたぶち切れですよ。 あのな、慰安婦なんてきょうび流行んねーんだよ。ボケが。 得意げな顔して何が、謝罪と賠償を、だ。 お前は本当に謝罪させたいのかと問いたい。問い詰めたい。小1時間問い詰めたい。 お前、金が欲しいだけちゃうんかと。 韓国通の俺から言わせてもらえば今、韓国通の間での最新流行はやっぱり、 在日を装って焼肉を食う、これだね。 プルコギ チョンシク ブタッカムニダ。これが通の頼み方。 直訳すると「焼肉定食お願いします」。これ最強。 しかしこれを頼むと次から店員にチョッパリではないかとマークされるという危険も伴う、諸刃の剣。 素人にはお薦め出来ない。 まあお前ら、素人は、日本で焼肉定食でも食ってなさいってこった。
734 :
734 ◆uJlep7is :02/03/18 20:49
やれやれ。春房の季節か。 >728 別のサイトで聞きなおすか、明日もういっかい再投稿しろ。そしたら ちゃんと教える。
投稿者: 投稿日:2002/03/18(月)20時55分50秒 ■ ★ 734 ◆uJlep7isとやら出て来いや。ああ。やってやんぞ ボケ
736 :
名無しさん@そうだ選挙にいこう :02/03/18 22:26
オートナンバーのリセットは、最適化が手っ取り早いと知った。 MSDEに持っていくつもりだったが、オートナンバーは無いと知った。 無知は恐ろしいと知った。 色々ありがとう
>MSDEに持っていくつもりだったが、オートナンバーは無いと知った。 MSDEにもオートナンバーあるって....。 整数型に「IDENTITY」プロパティにチェック入れればオートナンバーになるんだよ。 それこそ無知だぞ。
738 :
名無しさん@そうだ選挙にいこう :02/03/19 11:44
Access2000を最近買ったが、イマのPCにはWord・Excelが入ってないので、 Word&Excelの95をインストールしようと思います。その場合ちゃんと起動 するものなのでしょうか?最新のWord・Excelを入れた方がいいのでしょうか?
739 :
名無しさん@そうだ選挙にいこう :02/03/19 11:55
>738 どの程度のことするのか言ってみて。 普通に文章打って表作るだけならいらない。OfficePersonal+Accessって 組み合わせはそんなに珍しくない。 ただ、貴方がVBAそこそこ叩く人間なら、やっぱりバージョンは揃えるのが 無難だし。OLEオートメーションで余計な手間かけたくなければ、最新の一つ前のバージョンで 揃えるのが無難。今ならOffice2000は適度に枯れてきたし、バグ報告も出揃った 感があるので安心かね。
740 :
名無しさん@そうだ選挙にいこう :02/03/19 12:07
738です。 社員マスターや顧客管理などだいたい会社で使うことが想定される ものをやっていきたいと思ってます。 ワード・エクセル・パワーポイントが使えても職務経歴書のアピール としては弱いので、Accessが使えればできる仕事も増えるかと。 どうでしょうか?
741 :
名無しさん@そうだ選挙にいこう :02/03/19 12:25
>738=740 ごめん、自分いちおうプログラムやDB設計でメシ食ってるから、 基準が一般的でないのかもしれないが、事務職としてAccessできるってなら 便利とは思う。 ただ、Accessは結構クセがあって覚えなきゃならん方言が山ほどあるんで、 深みに入らぬよう注意。 職務経歴にハクをつけるつもりなら、逆にAccess程度では、って考え方を する人もいるのかもしれませんな。
742 :
名無しさん@そうだ選挙にいこう :02/03/19 13:01
743 :
名無しさん@そうだ選挙にいこう :02/03/19 13:49
738です。 みなさんありがとう! 最近の求人は、営業事務の募集が目立ちます。 こちらは田舎なので事務職でアクセスができる女性は めったにいないんです。 できる人なら、採用に結びつく可能性も高くなるかと思い やってみようかと考えたわけです。 では、またおじゃまするかもしれません。
>>743 田舎の求人ではAccess???な会社が多いと思われ。
それより履歴書にExcel(神レベル)と書いた方が
インパクト強いと思われ。
こればっかりは求人先がどういう意図で人を募集してるのかによるでしょう。 ちょっとExcelとWordができる程度で低賃金の事務のねーちゃんがほしいのか、 割と本格的にシステム構築ができる程度の人材(給料高め)を求めているのか。 Accessだけだと事務には役不足で、システム構築には経験不足って思われかねない。
746 :
はじめたばっかり :02/03/19 19:53
すみません、初心者です。 テーブル作成中ですが、住所入力支援を使おうとしましたが ビルドボタンが表示されません。また、ふりがなもビルドボタンが出てきません。 いったい、どうすればよいのでしょうか? お教えください。お願いします。
747 :
名無しさん@そうだ選挙にいこう :02/03/19 23:09
>743 私、まさに営業事務でAccess使いです(派遣社員)。 でも営業事務やるなら特にAccessのスキルはいらないかもだ。 それよか簿記検もってるとか、>744のいうとおり神レベルえくせらーの ほうが重宝されるかも。 でも、事務職の派遣に限って言えば、Access使えるとけっこう時給の 高い仕事もねらえます(プログラマとは比べもんになりませんが)。 私の場合、名目上は営業事務なのでAccess使いの時給じゃないんですが(;´д`) 「Access使える人」という条件(クエリ動かしたりマクロ作る程度)で 派遣されてた知り合いは、営業事務の仕事よりAccessでVBA書いてる時間の ほうが長い私より高い時給もらってイタヨー(;´д`) >746 ウィザード機能がインストールされていないのでわ? はずしてたらゴメンだ。
748 :
名無しさん@そうだ選挙にいこう :02/03/21 23:21
一応ageとく
749 :
名無しさん@そうだ選挙にいこう :02/03/21 23:29
お教え願います。 レポートのテキスト枠で均等割付をするにはどうすればよいでしょうか?
現在、商品管理をどうやるか悩んでます。 商品の種類が10種類以上でかやくによって値段も商品数も違います。 例 Aさん A品 100円 週3本 B品 110円 週3本 Bさん A品 110円 週3本 B品 100円 週2本 てな感じです。いずれは、一覧表の出力&請求書発行もしたいんですが どのように管理すれば効率がいいでしょうか? とりあえず、名簿クエリーってのを作って 客の住所等・ 商品1単価1(月1火1水1木1金1土1日1)・商品2単価2(月2火2水2木2金2土2日2) と、いう感じなんですが・・・。
>>751 その例はなんとかもう少し判りやすく書けないものか
(月1火1水1木1金1土1日1)というもの謎
えーと、 Aさん________月火水木金土日 (ID10) A品 100円 0 2 0 2 0 2 0 (商品1・月1) B品 110円 0 1 0 1 0 2 0 (商品2・月2) Bさん________月火水木金土日 (ID20) A品 110円 1 0 1 0 1 0 0 (商品1・月1) B品 100円 1 1 1 1 1 1 1 (商品2・月2) C品 120円 2 0 2 0 2 0 0 (商品3・月3) AさんBさんで値段が違うのは値引きしてます。 (月1火1水1木1金1土1日1)ってのは、 客によって、商品の種類数・商品数・値段・配達日等が違うので分けてるんです。 ・・・うまく説明できない・・・。 訂正 ×かやく ○客 ×名簿クエリー ○名簿テーブル
754 :
名無しさん@そうだ選挙にいこう :02/03/22 18:39
>>751 752さんではないよ。Aさんの所には火木土にA品を100円で2個(2ユニットとか2ダース
かもしれんけど)づつ、B品を110円で1個づつ。
Bさんには月水金にA品110円で1個づつC品120円で2個づつ、毎日B品を100円でお届け
ってことかな。
で、今は名簿テーブルに名前・住所・商品1・商品1単価・月1(月曜に何個届けるか)・
火1〜中略〜商品12・月12・火12〜後略とかの横にながーいテーブルになってると。
とりあえずテーブルを2つか3つに分けるかな。僕なら。
T顧客(頭のTはテーブルのTね)
顧客ID・顧客名・住所・TEL・・・
T商品
商品ID・商品名(最低価格と最高価格とか必要ならここに。月あたり1個から20個時の
価格、21個から50個の価格とかやる場合はまたテーブル分けるかな)
Tほげほげ(T配達予定とかT販売履歴とか、751さんの仕事にあわせて)
ほげほげID・顧客ID・商品ID・単価・月曜配達数・火曜配達数・水曜配達数・・・
とりあえずこれでむやみに横長なのは解消される。もう少しわけて
ほげほげID・顧客ID・商品ID・単価・個数・曜日
にする事もできるけど、場合によりけり。とりあえず上の方をやって、ひまなときに
下の方も試してガッテン
>>754 752ですが見事な推理です。漏れは753さんを読んでもいまいちピンと来ませんでした。
あとお約束でT商品には単位(個だとかダースだとかkgとか式とか)も付けておくと
請求書作る段になって便利。と言ってもどういう形の請求書なのかにもよるけど。
あと751さんを責めるわけではないけど、テーブル設計の相談なら、今作ってる
システムの内容ではなく、実際行っている業務の内容を書いてくれた方がアドバイス
しやすい気がする。ある程度SEの人もここにはいるだろうし。
>>754 自分の言いたかったことは、754さんの解釈そのものです。
実際、横に長いテーブルになってしまってるので、
754さんのアドバイス通りテーブルを分けてみたいと思います。
ありがとうございます。
>>755 たしかに実際行ってる業務を言った方がわかりやすかったかもしれないです。
牛乳販売のデータベースを作ろうとしてます。
757 :
名無しさん@そうだ選挙にいこう :02/03/22 23:10
レコードの一つの項目に「りんご;みかん;ぶどう;」と連続した 複数の情報が入っているのですが、これを りんご ぶどう みかん とフォーム上のテキストボックスに表示されるようにしたいのです。 どうすれば出来るでしょうか。
>>757 テキストボックスのコントロールソースに下記の式を書く。
=Replace([フィールド名], ";", Chr$(13) & Chr$(10))
ただ、このように1フィールドに複数の項目を入れて管理するのは
好ましくないと思うなぁ。
Accessはリレーショナルデータベースなんだかさ、一応。
>>756 牛乳販売・・・?
俺んちに配達してる120円の牛乳は
よそんちには110円で売ってやがるのか?
許せん!
>>758-759 ありがとうござんす。なんとかやってみますわ。
>ただ、このように1フィールドに複数の項目を入れて管理するのは
>好ましくないと思うなぁ。
>Accessはリレーショナルデータベースなんだかさ、一応。
項目の中に;で区切られたテキストを見せられたときは、
どうなのかなあと頭が痛かったです。
VBA知らずです。 A.mdbにAテーブルがあります。 B.mdbには同型のBテーブルがあり、ここで一時的に作成したデータ(レコード)を A.mdbのAテーブルへ追加転記する使用になっています。 管理者がAm.dbのAテーブルをメンテナンスまたは加工中にそのテーブルが現在使用できない旨 B.mdbiにメッセージを出す方法はありますでしょうか? できれは、メッセージの後に実行中のマクロを中止したいのですが…
763 :
名無しさん@そうだ選挙にいこう :02/03/23 14:12
ファイルのアップロード・ダウンロードについて アスキー形式やバイナリー形式のファイルをフィールドに登録する方法はありますか? 例えば、フォームのアップロードというボタンを押すと、ファイルの選択画面が現れて 選択したファイルをアップロードし、ダウンロードを押すとダウンロードといった具合です。
グラフをデザインビューで表示すると、全然内容の違うものが表示されます。 access97+win98です。
>>764 デザインビューで表示されるグラフは「表示例」です。
私も最初驚きました。
プレビューで見ればきちんとしたグラフが表示されるはずです。
みんな年度末で忙しいから勘弁してね
>>762 ,763
>>766 さんの言うように皆さん忙しそうなので
こちらのBBSで質問してみました。
http://www.ruriplus.com/msaccess/bbs.asp 以下のモジュールを書くことで解決しましたので一応ご報告まで
Dim db As Database
Dim rs As Recordset
On Error GoTo Open_Err
Set db = DBEngine(0).OpenDatabase("C:\A.mdb")
Set rs = db.OpenRecordset("Aテーブル", dbOpenTable, dbDenyRead)
rs.Close
db.Close
Set rs = Nothing
Set db = Nothing
Exit Function
Open_Err:
If Err.Number = 3262 Then
MsgBox "使用中"
End If
db.Close
Set db = Nothing
Exit Function
768 :
ちょっとスゴイかもよ♪ :02/03/26 17:06
>>767 レベルの高いBBSだな。2chとはえらいちが(略)
770 :
名無しさん@そうだ選挙にいこう :02/03/26 23:49
access初心者です 教科マスタ 1 国語 2 算数 3 理科 学生マスタ 1 aa 2 bb 3 cc とあって、 1 国語 aaa 2 国語 bbb 3 国語 ccc 4 算数 aaa 5 算数 bbb 6 算数 ccc (以下略) としたテーブルが作りたいのですが… 追加クエリではうまくいかないのです… ショボーン
>>770 教科マスタと学生マスタからクエリを作成する。
そのとき結合線は引かない。
同クエリを「テーブル作成クエリ」に変更する。
SQL文だと、下記のようになる、JOINしなければ全ての組み合わせの結果セットが作成されるってわけね。
SELECT 科目,生徒名 INTO 新規テーブル名 FROM 教科マスタ, 学生マスタ
>>769 RURI++氏はAccess User の中では神的存在だからねぇ。
BBSに頻繁に投稿している、こま氏も pin's Laboratory では有名人だからレベルが高くなるはずだ。
772 :
名無しさん@そうだ選挙にいこう :02/03/27 01:42
>>771 ありがとうございます!!
本当に助かりました!!
773 :
名無しさん@そうだ選挙にいこう :02/03/27 12:09
文字列を変換したいのですが、「*研究所」以降の文字を削除したい 場合、クエリーで出来るのでしょうか?当方SQLの知識はありません。 よろしくお願いします。 (例) アスキー研究所 東京本社→アスキー DOS/Vマガジン研究所 大阪支店→DOS/Vマガジン 2CH研究所 代表 月亭可朝→2CH
774 :
名無しさん@そうだ選挙にいこう :02/03/27 12:33
>>773 Left([テーブル名]![社名],InStr([テーブル名]![社名],"研究所")-1)
>>774 さん
ありがとうございます。完璧にできました。
テーブルで ID 10 A商品 ID 20 B商品 で、ID10を入力したらIDではなく そのフィールドに商品名を表示させたいんですが可能でしょうか?
>>776 テーブルでは無理じゃないか?フォームなら出来そうだけど。。。
またまた、質問です。申し訳ありません。 多数のフィールドに対し、クエリの式ビルダで、比率を求めています。 (点数÷満点×評価の重み(パーセント)) とあるフィールドでは、点数も満点も0の場合があります。 当然、データ例外をおこすわけで、、式ビルダのなかでは満点が0以上だったら という条件は記述できないのでしょうか? または、エラーの場合、そのフィールドに0という値を挿入するといった ことでもいいのですが…。
>>778 =iif(満点=0,0,点数÷満点×評価の重み(パーセント))
781 :
名無しさん@そうだ選挙にいこう :02/03/28 14:18
>>782 あははは たしかにそうですね
でも、実は、元事務系プログラマで、先生の友達に頼まれてたりするんでし
検索用フォーム内のサブレポート部に表示された検索結果から 顧客No部分をクリックしたら、別の単票フォームに該当顧客番号のレコードを 表示するようにしたいのですが、どの様にすれば良いのでしょうか?
SQLサーバー7.0で以下のSQLを発行すると select add1,add2 from table1 order by add2 結果が以下のようになります。 add1 add2 --------------- ------------------- 東京 新宿1−13−1 東京 新宿1−1−4 東京 新宿1−14−1 本当は2番目のデータが1番上にきて欲しいのですが なにか考えられる原因はありますでしょうか? よろしくお願い致します。
マルチパスト、よせよ!! # こんな奴に何言っても無駄か
787 :
名無しさん@そうだ選挙にいこう :02/03/28 20:32
すいやせん。 AccessVBAはじめてみました。ADOの本見ながらやってます。 List1からText1にアイテムをとってきて編集、Recordset取得して データベースを更新、ってのをやってみたんですけど、 データベース更新後、List1.Requeryってやっても1回じゃ更新してくれません。 何回か同様の操作をして更新してやると、ランダム回目で更新してくれます。 これは何かやり方が間違ってんでしょうか。 おわかりになる方、助けて下さい。
>>787 List1.Requeryの前に1行
DoEvents
と書いてみて。確約できないけど。
789 :
名無しさん@そうだ選挙にいこう :02/03/29 17:04
a
>>785 良く知らんけど、ソート順でハイフン"-"って無視されるようです。
無視しないようにする方法もあるような気がする。
>>785 ついでに書くと
新宿1−2−4
新宿1−14−1
はハイフン無視に係わらず上の方が下にくるよね。それでいいのかな?
>>788 やってみましたが、これはこれで変な更新の仕方しますね。
しかもその後、別の動作できないですし。
これ何の為にあるんですか?>DoEvents
>>792 DoEventsで変な更新するというのも初めて聞きました。別の動作ができないって
ハングするのですか? それも聞いたことないです。
内容はヘルプを見て下さい。
795 :
名無しさん@そうだ選挙にいこう :02/03/30 02:38
一時入力用のワークテーブルから、保存用テーブルへレコードを移そうと、追加クエリを利用しました。 どちらのテーブルもフィールド構成は全く同じで主キーとして「ID」フィールドがあります。 保存用テーブルにはすでにID1〜20までレコードが格納されており、 ワーク用テーブルにあるレコードのIDは1です(テストなので1件だけ) 追加クエリを実行してみると「キー違反」とメッセージが出て保存用テーブルに追加できません。 追加クエリからIDフィールドを削除したりもしてみましたが、依然として同じエラーが出ます。 良い手段はないでしょうか?
>>795 書き忘れましたが、どちらのテーブルの「ID」もオートナンバー型です。
よろしくお願いします。
>>795 よく判りませんが、2つのテーブルの[ID]というフィールドの名前が違うと
うまく行くようです。例えば一時入力用のワークテーブルの[ID]を[ID2]という
具合にですね。
ん〜あと一息なんですが… Aくん 1学期 国語 テストa 点数 国語 テストb 点数 国語 テストc 点数 とありましす クエリで集計しまして Aくん 1学期 国語 テストの件数 点数計 とまではできましたが、その値をもとに、別のテーブルへの更新はできないの でしょうか? 最終的には Aくん 国語 1学期の点数 1学期の件数 2学期の点数 2学期の件数 … としたいのです。 各学期の点数と件数を元に、重み(利率)を考慮した学年末の評定を 計算したいので1レコードにおさめたいのですが…。
とありましす
>>798 そのクエリを更新クエリに変更すればできると思うが。
どんなエラーが出るのかかかないとわからんで。
802 :
名無しさん@そうだ選挙にいこう :02/03/30 19:31
>>798 集計クエリーから更新クエリー作れないんだっけか。
追加クエリーが作れたらテンポラリテーブル作ってそこに追加、
そこから更新かなあ。
追加クエリも作れなかったらDAOかADOで。
803 :
insert 嫌い :02/03/30 23:15
Access + SQLサーバーのシステムです。 テーブルに追加する時、なぜ addnew を使わずに insert 分 を使うのでしょうか? フィールド数が多いと、insert 分はフィールドの対応が、 すごくわかりにくいとおもうのですが。
805 :
insert 嫌い :02/03/31 00:10
>>804 たとえばどの程度違うのでしょうか?
画面の情報を書き込むだけだったら
殆ど違わないのでは?
>>802 レスありがとうございました。
『できるシリーズ』程度では無理ということですね。(w
なんとか姑息な手を使って、切り抜けました。
>>799 寝ながら書いてたかも…。ワラタ
>>805 私は画面の情報を書き込むだけならAddnewを選択します。
試しに5000レコードぐらいをAddnewとInsertで追加して
処理時間の違いを実感して見られたらと思います。
>>805 書いてみて不安になったのですが、5000レコードのInsertでの追加って
SQLを5000回Executeするという意味ではないです。Table To Tableの
レコード追加の場合ですので誤解のないように。
テーブルで 1〜100000まで、振り分けたいんですが簡単にできないでしょうか? 一つずつ入力してたらキリがないんで。 1 2 3 99999 100000 といった感じです。 先にIDとして入力しておいて、フォームで検索できるようにしたいんです。
810 :
名無しさん@そうだ選挙にいこう :02/04/01 12:23
>809 やり方はいろいろあるよ。 VBA触ってる?触ってないんだったら、Excelでデータ作って 貼りつけるだけ。オートフィルだったか?忘れた。 VBAある程度触ってて、Recordset振りまわせるなら、別法もあるよ。
811 :
名無しさん@そうだ選挙にいこう :02/04/01 20:07
え〜超厨房質問です。笑わないで下さいまし〜。 数量、単価、金額のフィールドを持つテーブルを作り、フォームから入力 する時に、フォーム上で数量*単価の結果を金額に入れてやってもフォー ム上では計算結果が入力されますが、テーブルに反映されません。 どうすれば良いのですか。
>>810 ありがとうございます。VBAは触ったことがないので、
Excelのオートフィルでできました。
>>811 どんなテーブルのどこにその計算結果が
入ればいいのかがわからん。
>>811 今、金額欄のコントロールソースが「=数量*単価」になってませんか?
金額欄のコントロールソースを「金額」にして
数量と単価の AfterUpdateで
金額=数量*単価
を設定すれば、テーブルにも反映すると思うのですが。
816 :
名無しさん@そうだ選挙にいこう :02/04/02 11:53
はじめましてこんばんわ。 最近ACCESS勉強中の者です。 クエリーを作成した後、レコードを追加しようとすると、 "レコードが追加できません。テーブル'〜'の結合キーがレコードセットにありません。" と表示されレコードを追加することができません。 これはどのような意味なのでしょうか? どのようにしたらレコードを追加できるようになるのでしょうか。 どなたか教えてください。教えてクンですいませんがお願いします。
すみません、すみませんレス付けていただいたのに反応できなくて。 >815 確かに、金額欄のコントロールソースが「=数量*単価」になってます。 “数量と単価の AfterUpdateで金額=数量*単価”ていうのがいまいち良く わからないんですが。 >814 左から数量、単価、金額の順にフィールドが並んでいて、フォームで数量、 単価を入力したら数量*単価の計算結果が金額のフィールドに入力されるよ うにしたいんです。
>>817 フォーム名を「フォーム1」とします。
入力順が数量→単価→金額とします。
単価のプロパティをを開いて「イベント」の「更新後処理(AfterUpdate)」で
[イベント プロシージャ]を選択し「…」ボタンを押します。
Private Sub 単価_AfterUpdate()
【ここに】
End Sub
【ここに】これを書く
Forms!フォーム1!金額 = Forms!フォーム1!数量 * Forms!フォーム1!単価
以上
>818 ありがとうございます。何とか解決しかかったところでしたが、明快に 書いていただいてすっきりしました。単価にマクロ貼り付けるっていう 発想がなかったあ。 ところで、 Forms!フォーム1!金額=Forms!フォーム1!数量 * Forms!フォーム1!単価 のところに単純に [金額]=[数量]*[単価] と記述しても結果は代入されていますが問題ありますか?フォームが複数 になり同じ名前のコントロールが出来た時、参照が出来なくなるのかしら。
>>819 > と記述しても結果は代入されていますが問題ありますか?フォームが複数
> になり同じ名前のコントロールが出来た時、参照が出来なくなるのかしら。
同じフォーム上になければ[金額]=[数量]*[単価]で良いと思うよ
何故って? オイラもこのスレにいる人に比べると
811さんに近いから…
どーやってこれ(Forms!フォーム1!金額=Forms!フォーム1!数量 * Forms!フォーム1!単価)を
引っ張ったかというとマクロで「値の代入」を使って「VBモジュール」に変換しただけだから…(汗
お互いガンバりましょう
ACCESSのフォームで連結オブジェクトフレームを作って そこにクリップアートを挿入すると全てのレコードに 同じクリップアートが挿入されてしまうんですけど レコードごとに1つづつ違ったクリップアートを挿入するには どうしたらいいんですか?
822 :
名無しさん@そうだ選挙にいこう :02/04/02 19:30
VBAやマクロを使って、一つのアプリケーションを作ってます。 最終的に起動の設定でメインフォームを選択し、 自分で書いているモジュールやマクロを完全に開けなくしたいのですが、 どこを設定したら良いのでしょうか。 お願いします。
823 :
名無しさん@そうだ選挙にいこう :02/04/02 23:14
824 :
名無しさん@そうだ選挙にいこう :02/04/03 03:42
フォームの中に、サブフォーム、サブフォームのなかに、タブコントロールのページが 4ページあります。 親のフォームのボタンをクリックした時、サブフォームで現在表示しているページの とあるテキストボックスにフォーカスしたいです。 親のフォームのボタンををクリックした段階で、フォーカスが移ってしまうのですが、 サブフォームで開いているタブコントロールのページ名(またはインデックス)を 取得する方法がありますでしょうか?
日付として「上旬」、「下旬」等の言葉、又はそれに近いものを認識させることはできるのでしょうか? 初心者な質問ですいませんが、どなたか教えてください
>820 いろいろありがとうございます。まだまだ棘の道です。頑張りましょうね。
827 :
名無しさん@そうだ選挙にいこう :02/04/03 15:57
>816 どんなテーブルでどんなクエリ? >821 テーブルでOLE オブジェクト型のフィールドを作ってそこに。 >824 ActiveControlプロパティとかで参照できるかなあ?ああ親フォームのボタンが アクティブか。 タブコントロールの中のフィールドとかがアクティブになったときに 今アクティブなのは1ページとかどっかにいつも書き込んでおくのはどうかな。 グローバル変数か、フォームのどっかに見えないように置いて初期値を 1、2ページ目のフィールドのどれかがアクティブになったら2に変える。とか。 >825 普通には無理。どういう用途で必要なのかがわかれば、その用途限定でなんとか なるかも。ExcelのシートからAccessのテーブルにしたい、上旬は1日にして 中旬は15日、下旬はその月の最終日にするとかならできるよね。 2002/04/上旬とかのまま持って来たいならテキスト型のフィールドにして、処理時には IIf(InStr([日付],"旬")=0,[日付],IIf(InStr([日付],"上"),Left([日付],8) & "01",IIf(InStr([日付],"中"),Left([日付],8) & "15",IIf(InStr([日付],"下"),Left([日付],8) & "28","エラー" & [日付])))) みたいなことしないといけないし、 上のは[日付]が必ず"yyyy/mm/dd"になっていないといけないしで大変。
>827 ありがとうございます もうチョット頭使ってがんばってみます!
829 :
名無しさん@そうだ選挙にいこう :02/04/03 20:26
「請求合計」をダブルクリックすると、 「式に未定義関数'date'があります。」 という表示が出てしまうのですが、 どのようにすればよろしいでしょうか。
>825 827の式は5分ぐらいでてきと〜に書いたものでデバッグもしてないからもし使うような ことがあったら気をつけてね。 >829 どんな式書いてるの?とりあえずそれだけの情報ではなにがおかしいのかわからないよ。
「日付:date()」という式です。
>>827 解決しました
ただクエリがうまくできてなっかったみたいでした
>829 請求合計に日付をいれるの?ちがうでしょう? 数量*単価?君の後ろからモニタ覗き込んでるわけじゃないからそんなんじゃわからないよ。 Date関数が使えないみたいだから、なにかインストールしていないのかもしれないね。 追加インストールで、Accessの下全部とOfficeツール(かなんかうろおぼえ)の中で VBAとかなんちゃら式ウイザードとかそれっぽいの全部いれてみて。
835 :
ACCESS部屋 :02/04/04 16:07
ACCESS2000での追加クエリのエラーメッセージの意味を教えてください。 追加クエリを作成し、実行すると以下のエラーメッセージが出ました。 ”追加クエリですべてのレコードを追加できません。 型変換エラーのため、1個のフィールドをNullに設定しました。また、0件のレコードでキー違反、0件のレコードでロック違反、0件のレコードで入力規則違反が発生しましたため、レコード追加できませんでした。 アクションクエリの実行しますか?(以下省略)” テーブルと追加クエリのSQL文を確認しましたが、2重キーのエラーではないと思います。「1個のフィールドをNullに設定しました」の意味がわかりません。ヘルプでも 説明がありませんでした。このエラーメッセージの意味について教えてください。
836 :
ACCESS部屋 :02/04/04 19:07
↑ 解決しました。数値型のフィールドに"'"で括っていました。
837 :
名無しさん@そうだ選挙にいこう :02/04/04 21:59
追加クエリを作りましたが、ダブルクリックをしても反応がありません。 やり直してみたら、「出力先’請求金額’が重複しています。」との表示 が出てしまいます。どのようにすればよろしいでしょうか。
>>837 エラーメッセージのままやないか!
レコードの追加行に「請求額」が2つ以上あるってこと!
839 :
名無しさん@そうだ選挙にいこう :02/04/04 23:01
工程管理で、MS Projectのようなガントチャートやタスクビューや Outlookのような、年間、月間、週間での表示が切り替えられるカレンダー を利用したいのですが、Accessから利用可能なコンポーネントはありませんか?
840 :
名無しさん@そうだ選挙にいこう :02/04/05 00:39
てめえーYahooにも来てたな!
いいえ。
商品テーブルと販売テーブルがあって フォームで販売の入力をできるようにしてます。 フォームで商品コードを入力したら、商品名を表示させたい のですが可能でしょうか? フォームでの入力は コード10 商品A コード20 商品B このような表示になっていて、 コード10を選んだら、コード入力した欄の隣に商品名を表示させて、 さらに販売テーブルの方にも商品名を反映させたいんです。
843 :
名無しさん@そうだ選挙にいこう :02/04/05 19:16
マクロで集計クエリをexcelにエキスポートするのですが、 ファイル名に日付をつけたり、ファイル名の入力をうながしたりすることは 可能でしょうか?
>>842 可能。
NorthWind(AccessのサンプルDB)の受注フォームの
請求先を参照してみれ。
請求先を選ぶと、その下の住所が表示される
仕組みが参考になるんじゃないか?
販売テーブルに商品名を反映させるのも、イベント
プロシジャーでできるけど、商品コードじゃなくて
商品名を入れるのか?
(正規化を崩す理由があるんだろうけど....)
>>843 マクロだよな?
ファイル名の入力を促すなら、出力ファイル欄に何も入れなければ、
ダイアログが表示されるはず。
モジュール(VBA)なら、ファイル名に日付をつけるのも、ファイル名
入力のダイアログも出すのは可能だけど。
>>845 ありがとうございます。
マクロをVBAに変換しました。
ファイル名入力のダイアログですか、、がんばってやってみます。
847 :
名無しさん@そうだ選挙にいこう :02/04/06 02:23
たぶんバカな勘違いをしていると思うのですが、 教えてください。 ある一つの商品の商品番号と、仕入れ先メーカー名、 そしてその色違いをデータベースに入れるために、 以下のテーブルを作りました。 商品テーブルに 主キーになる商品番号フィールドと メーカー名フィールド 色テーブルに 主キーになる色番号フィールド 色名フィールド 商品テーブルからのリレーション用の商品番号フィールド を作りました。 そしてその二つのテーブルを繋ぎ、参照整合性 と連鎖更新のチェックを付けました。商品テーブルの 商品番号と、色テーブルの商品番号を繋ぎました。 一対多になりました。 そして商品テーブルの商品番号フィールドとメーカー名フィールド、 色テーブルの色名フィールドだけでクエリを作りました。 そしてそのクエリで商品の情報を入れていこうとしましたが、 商品番号、メーカー名は入れれるのですが、色を入れようとすると ビープ音が鳴って入れれません。 何故なんでしょうか?
>>844 ありがとうございます。
商品名を入れるのは、販売テーブルを印刷するときに
商品IDのままではわかりずらいので、
商品名を表示させたいからです。
849 :
名無しさん@そうだ選挙にいこう :02/04/06 22:03
>845 便乗質問させて下さい。 ActiveXのコモンダイアログでファイルを選択した場合、VBAで FileSelect.ShowOpen strFilePath = FileSelect.FileName としてます。 Pathには、C:\temp\hoge.data といったフルパスなんですが ベースディレクトリとファイル名分ける方法ないですか?
850 :
名無しさん@そうだ選挙にいこう :02/04/07 01:35
色テーブルに商品番号フィールドがあるのはおかしいと思います。 商品テーブルに色番号フィールドを作るべきと思います。
>>847 「商品テーブル」と「色テーブルは」はどちらもマスターテーブルのようなので、
両方を同時に入力するのは無理なのでは?
(主キーがどうしても重複してしまう)
まず色テーブルで「01=赤」「02=青」・・・のようなデータを作成し、
商品テーブルには「商品番号・メーカー名・色番号」フィールドを作成。
リレーションは「色テーブルの色番号=一」「商品テーブルの色番号=多」として、
商品テーブルの「商品番号・メーカー名・色番号」と「色テーブルの色名」からクエリを作るのが
正攻法のような気がしますが・・・
>>849 >Pathには、C:\temp\hoge.data といったフルパスなんですが
>ベースディレクトリとファイル名分ける方法ないですか?
ベースディレクトリって、「C:\temp\」のこと?
だとしたら、1つの方法としては、絶対パスからディレクトリと
ファイル名を切り分けるサブモジュールを作成する方法がある。
intLen = len(strFilePath)
intWLen = intLen
For intWk = 0 To IntLen
If Mid$(strFilePath, intWLen, 1) = "\" Then
strPath = Left$(strFilePath,intWLen) 'パス取り出し
strFile = right$(strFilePath,intWLen-1) 'ファイル名取り出し
Exit For
End If
intWLen = intWLen - 1
Next
こんな感じ。(手打ちだから、エラーが出るかも)
855 :
名無しさん@そうだ選挙にいこう :02/04/07 11:32
最近Accessでフォームとかモジュールとか触り始めました。 質問ですが、 これ本によってやり方が違うんですけど、 通常、コンボボックスなんかはデータベースの情報を直接連結させて 使うものなんでしょうか。 それともモジュールで更新するのが正しいのでしょうか。 お願いします。
>>855 どちらか一方が正しくてどちらか一方が間違い、という話ではない。
いろいろな方法がある、ということ。
857 :
名無しさん@そうだ選挙にいこう :02/04/07 12:44
今までms-dosのcardというソフトで作って いた販売管理のプログラムをAccessで作ろうと 思います。 販売管理といってもたいそうなものではなく 売上明細を作るのと、在庫数の引き落としが できるだけのものですが、私は生まれて初めて Accessを使います。 マニュアル本を買ってきましたら、ウイザード で作るやり方と白紙の状態から作るやり方の 2つがありましたが、どちらの方がお勧めで しょうか?(本ではウイザードを薦めている ようでした)
>>857 ウィザードは、どうしますか?という質問に答えて
いくと、それっぽく雛形を作成してくれる。
白紙は、ゼロから自分で作成していく。
ウィザードを使っても100%思ったとおりではないの
で手直しは必要だけど、ゼロから作るよりはましと
いうことと、初心者にとっては作り方の参考になる
から薦めているのでは?
>>855 データ入力の仕様をどうするかで、
どちらの方法を使うか、決めれば
良いと思う。
例えば、1つの画面であるテーブル
にデータを入力するとき、他のテー
ブルにもデータを追加しなければ
いけない場合、モジュールを使った
方が良いと思うし、1つのテーブル
の入力で、各項目の入力書式だけ
チェックするなら、連結でも良いかと。
860 :
名無しさん@そうだ選挙にいこう :02/04/07 14:05
>854 ありがとう 早速使ってみます。
861 :
名無しさん@そうだ選挙にいこう :02/04/07 15:07
教えて下さい。 クエリーを基にしてレポートを作成しています。 クエリーの中で、 【Between [開始日を入力] And [終了日を入力]】 というパラメータを設定しています。 レポートの中に非連結テキストボックスでその開始日と終了日を記入する為に テキストボックスのコントロールソースに、 【=Format([開始日を入力],"yyyy""年""mm月dd日") & "〜" & Format([終了日を入力],"yyyy""年""mm月dd日")】 と入力しました。そしてビューに切り替えようとすると、「パラメータの入力」ダイアログが 出てきて、「開始日を入力」「終了日を入力」と出てくるんですが、その後もう一度、 「開始日を入力」「終了日を入力」と出てきてしまいます。 同じ年月日を2度入力しなくてはならないのです。 何が悪いのかさっぱりわかりません。 初心者の質問で申し訳無いですが、よろしくお願いします。
862 :
名無しさん@そうだ選挙にいこう :02/04/07 16:37
入力時に yyyy/mm/dd と入力したのではだめなんですか?
863 :
名無しさん@そうだ選挙にいこう :02/04/07 22:09
>858 さん、 >初心者にとっては作り方の参考になる >から薦めているのでは? そうですね。 一度、ウイザードで作ってみて、作り方の 参考にしてみてから、白紙から作ってみたい とおもいます。どうもありがとう!
864 :
名無しさん@そうだ選挙にいこう :02/04/07 22:46
実験的に本参考にしてモジュール書いてるのですが、 レコードセットをSQL文で開く(?)と、一件も対象データが無いのに、 それと全く同じSQL文をクエリで実行すると一件データがあるのは 何が原因でしょうか。 モジュールだとデータが引っかからない、みたいなことあるんでしょうか?
>>864 VBAのSQLとクエリのSQLで、where句がついているなら
それを外して試してみるとか。
もし、結果が一致したなら、違いはwhere句の部分にある
と思われる。
クエリで実行した場合に、新規レコード入力用の1件では
ないよね?
>>861 クエリのパラメータで1回目、レポートのテキストボックスで
2回目のダイアログが出ているんじゃないかと思う。
1つの回避方法としてだけど、開始日・終了日をフォームで
入力させ、モジュールのグローバル変数に格納。
クエリの代わりにVBAのSQL文にして、その条件や、レポート
の発行時にグローバル変数に格納してある、日付を利用する。
.....というくらいしか思いつかない。
他に良い方法があったら、フォローよろしく。>わかる方
>>850 >>851 ありがとうございます。
すいません、ちょっと説明が足らない所がありました。
色テーブルの色番号は、実は色一つずつに対応している
番号ではなく、一つの商品の色分け毎に付けようとした
番号なのです。
何故かと言うと、同じ商品でも多数の色が存在し、
またその色別に在庫数管理をしたいからです。
クエリを使わずテーブルに直接入力して行く事は
出来るのですが、入力に時間がかかり、クエリで
しようとするとどうあがいてもエラーが出ます。
そんな場合、商品テーブルと色テーブルの入力を
クエリで同時に入力する方法はありませんでしょうか、、?
>>865 ありがとう、今日、帰ったら試してみようと思います。
ちなみに、モジュールで一件だけ取り出して、Recordset.Deleteってのを
やって一件だけ消そうと思ったのです。
つまりSelect文を用いてるのですが、これをいったん変数に取り、
デバッグウインドウに書き出して、クエリにコピペしたら、
問題なく一件出るのですが、Recordset.RecordCountはゼロ件の
ままなんですよね・・・。
#「新規レコードの一行」ではないです。
もう一度確認したところ、クエリーの「開始日を入力」「終了日を入力」を 「開始日の入力」「終了日の入力」と打ち間違えていました。 単純ミスでした。お返事くださった方ありがとうございました。
870 :
名無しさん@そうだ選挙にいこう :02/04/08 16:18
Accessのレポートって値の取得ができないの? 名簿を作ったんだけど、 レポートの性別がチェックボックスじゃあ見っとも無いので 性別にチェック有で男、チェック無で女に丸を書こうとしたら 1行目でエラー If Me("Chek性別") = -1 Then 'Chekがあれば Me("丸性別").Left = 6522'左に丸を書く Else 'なければ Me("丸性別").Left = 7088'右に丸を書く End If 仕方なく、先にフォームを開いてその値を参照して解決した。 If Forms![名簿入力画面]![Chek性別] = -1 Then Me("丸性別").Left = 6522 Else Me("丸性別").Left = 7088 End If 解決したけど、なんだかなあ・・・
871 :
名無しさん@そうだ選挙にいこう :02/04/08 17:50
>870 レコードソースを加工した方が早くないか?クエリで指定して、 IIF関数使えばどうにでもなりそうだが
>>868 RecordCountプロパティは、アクセスされたレコード数しか
わからないよ。
だから、RecordSetを開いた直後では0だよ。
Recordset.MoveLastすると、RecordCountがデータ数になる。
(Accessのヘルプを参照)
データがあるかどうかなら、EOFプロパティで判断可能。
>>869 解決できて良かったね。
漏れのアドバイスが的外れで、スマソ。(反省)
>>870 性別のチェックボックスをレポート上に非表示で置いて、
これを参照すればいいんじゃ?
あ、既に試してダメだったのか スマソ 何てエラーが出たの?
876 :
名無しさん@そうだ選挙にいこう :02/04/08 22:41
Access97にカレントプロジェクトのパスを得る プロパティはありますか? CurrentDBにはないようなのですが?
877 :
名無しさん@そうだ選挙にいこう :02/04/09 00:08
>847 フォームとサブフォームで入力すればいいんじゃないかな。
878 :
名無しさん@そうだ選挙にいこう :02/04/09 03:04
データ(.mdb)がどんどん大きくなってしまいます。(現在45MB) レコードを削除し、データベースの最適化を行っても減りません。 MDEファイルを作成すると140KB程度です。 どうすればいいのでしょうか?
879 :
名無しさん@そうだ選挙にいこう :02/04/09 04:58
>>870 レポートの性別を示すテキストボックスに
=iif(forms!xxx!chek性別=true,"♂","♀")みたいな感じにすればOK。
ツールには推奨の使用方法があるし、
バグだってあるんだから、
人間の方が合わせてあげないとうまくいかないよ。
880 :
名無しさん@そうだ選挙にいこう :02/04/09 09:11
>>878 新しいMDEファイルを作ってインポート。
881 :
名無しさん@そうだ選挙にいこう :02/04/09 09:12
違った。正しくはMDBファイルを作ってインポート。
>>877 ありがとうございます。
ウィザードリーでフォームを作ると、
サブフォームを作ってくれるのですが、
いざ実行しようとすると必ず
「ご迷惑をおかけします。エラー内容を
送信しますか?」エラーが出てアクセスが
終了してしまうのです。何か無茶をしている
からかなと思います。
883 :
名無しさん@そうだ選挙にいこう :02/04/09 11:04
超ビギナーなんです〜。クエリでグループ毎に集計したデータをクロス集計表にもってきました。クロス集計表の空白の部分を0(ゼロ)に置き換える関数を入れたいのですが、どこにどんな関数を入れれば良いのでしょうか?
884 :
名無しさん@そうだ選挙にいこう :02/04/09 12:21
>>883 空白の部分(Null)の部分を[A]とすると
クロス集計クエリーの当該列のフィールド行が「値:A」となっているとおもいます。
この「:」の後に(Aの部分)
IIf(Sum([A])Is Null,0,Sum([A]))
をいれて
集計行が「合計」になっているので「演算」に変更してください。
たぶん、できると思います。
>847 2002かな。そのIE5以降みたいなメッセージ。 ん〜マイクロソフトがパッチ出してないか確認して、無い/当てても治らない なら、再インストールかな。 あ、もしかしたらmdbファイルがちと変になってるのかもね。新しいmdbを作って そこに全部インポートして試して見るとか。 あとは、先にフォームを2個(商品のテーブルを元にしたのと色のテーブルを元にしたの) 作ってから、商品のテーブルにサブフォームのウィザードリー(wで色のフォームを 指定してる? んと、一応バックアップとってから下から順に試してみてね。
887 :
876(かえでや :02/04/10 00:12
>>884 さんきゅう〜。
ファイル名を含むフルパス名から
ファイル名を削ってパスに変換しましたです。
Access2000から入門したので勝手の違う97にびっくりですぅ。(;^ー^
888 :
名無しさん@そうだ選挙にいこう :02/04/10 09:30
>>885 出来ました〜っ! もう感謝感激雨あられっ! 私の昨日1日の悩みはいっきに解消されました〜っ!
もう今夜はぐっすり眠れます。
889 :
名無しさん@そうだ選挙にいこう :02/04/10 12:46
890 :
名無しさん@そうだ選挙にいこう :02/04/10 14:40
こんにちわ。 アクセスとはちょっとはずれるかもしれないんですが、 jetで名簿管理みたいなデータベース作ったんですけど、 フリガナのようなカタカナ検索やひらがな検索で、登録件数が 増えてくると該当以外のものまでひっぱってくるように なりました。アスキーコードの問題なんでしょうが、 どうしたらいいんでしょ。該当のだけ引っ張ってくるように したいんですが。。。 誰かアドバイス下さい!
教えてください、お願いします。 フィールド[性別]に、男=1、女=2のテキストとして 入力されたテーブルをフォームで1=男、2=女として コンボボックスを作成するにはどうすればいいですか?
892 :
名無しさん@そうだ選挙にいこう :02/04/10 18:11
>891 テーブルには1か2が入っていて、フォームでは男・女で選択したいということだね。 フォームをデザインビューで開きにコンボボックスを作る。 コンボボックスのプロパティのコントロールソースを 性別 にする。 値集合タイプを 値リスト にする。 値集合ソースを 1;男;2;女 とする。 列数を 2 にする。 列幅を 0cm;3cm とする。 以上
893 :
名無しさん@そうだ選挙にいこう :02/04/10 18:26
>890 支離滅裂で言いたいことがよくわからんぞ。勝手にアスキーコードのせいに されても困るし、お前の検索実装が貧弱なだけと違う? ちょっとコードをあげてみて。
>>892 できました〜
どうもありがとうございます。
感激です!!
895 :
みずきちゃん :02/04/10 20:11
896 :
名無しさん@そうだ選挙にいこう :02/04/11 00:35
初めまして。 ちょっと困ったことになったので書き込んでみます。 みなさんよろしくおねがいします。 ウィンドウズ95にアクセス95使ってます。 テキスト型の数値をVal関数で数値型に変換してこれを合計したいんですが 10とか3とかに混じって2.5とか小数点以下を含む数字を含んでいて 足すことができません。 何かよい手はないものでしょうか。
>>896 結果の代入先が整数型になってるんじゃ?
Dim goukei As Double
って宣言して、変数 goukei に足していけばいいかも
あと、Val 関数じゃなくて CDbl 関数を使ってみるとか。
898 :
名無しさん@そうだ選挙にいこう :02/04/11 00:59
>897 ありがとうございます。 早速明日職場で試してみます。
899 :
名無しさん@そうだ選挙にいこう :02/04/11 01:49
非常に初歩的なことだと思うのですが、どうしても解決できません。 どなたかご教授お願いいたしますm(__)m 帳票フォームを作成し、コンボボックスから抽出した 項目に、値を追加したいのです。 抽出結果をフォームに表示して、そのフォームからレコードセットを作成。 非連結のテキストボックスに、数値を入力して テーブルに保存したいのですが、1つのテキストボックスに数値を 入力すると、他のテキストボックスの値まで その1つと同じになってしまいます。 Requeryしたり、rs.MoveNextでレコード移動したり いろいろやってみたのですが、どうしても上手くいきません。 VBAにて問題解決したいのですが、どうやればいいのでしょうか。 どうかよろしくお願いいたします。
900 :
記念カキコ :02/04/11 04:24
@ノノヽヽヽ@ ミ _ ドスッ ( 0^〜^)─┴┴─┐ / つ. 9 0 0 │ /_____|└─┬┬─┘ ∪ ∪ ││ _ε3
901 :
名無しさん@そうだ選挙にいこう :02/04/11 06:10
>>890 少なくとも俺がやった範囲ではそんな経験は一度もないぞ。
>>893 が言ってる通り、君の実装の仕方が悪いんだと思う。
902 :
名無しさん@そうだ選挙にいこう :02/04/11 07:33
>>893 >>901 どうもすみません、890です。
訳の分からないことを書いてしまったようでごめんなさい。
GUIをVBで作っていてそこからデータベースを呼び出してます。
仮に名簿の入っているテーブルがtableAで、フィールドがNameA
フィールドの属性はテキストで入力は全角ひらがなでしてます。
SELECT * FROM tableA WHERE NameA LIKE 'さとう%'
みたいな感じで。すると最初のうちは検索問題なかったんですが、
800件を越えたあたりからちゃんと引っ張るのもあれば、全件引っ張って
きてしまうものとかもあって、どうしてでしょうか。
みなさんのおっしゃる通り、実装の仕方が悪いのでしょうが何が
いけないんでしょう。
903 :
名無しさん@そうだ選挙にいこう :02/04/11 10:05
>>902 JETってANSISQLに準拠してないでしょ?
%って使えたっけ?
とりあえず、
SELECT * FROM tableA WHERE NameA LIKE 'さとう*'
だったらどうなる?
904 :
名無しさん@そうだ選挙にいこう :02/04/11 11:34
>>899 テキストボックスの「コントロールソース」プロパティ見てみ?
同じのが設定されてるんでねが?
905 :
名無しさん@そうだ選挙にいこう :02/04/11 11:59
>>899 具体的に書かれていないのでイメージしにくいが、むかーし同じような事に
答えた憶えがあったような気がして過去ログ漁ってたら、前スレの650-682
あたりがもしかしたら参考になるかもしれない。
>>904 コントロールソースには何も設定されておりません。
>>905 在庫管理の個数を入力するフォームを作りたいのです。
フォームヘッダーのコンボボックスから編集したいデータを抽出します。
抽出されたデータはフォームの詳細に表示させて、ここから
Set rs = Forms!フォーム名.Recordset.Cloneでレコードセット作成。
データ横に、非連結のテキストボックスを配置して個数を入力したいのです。
商品 個数
メロン 7
イチゴ 5
↑ ↑
抽出結果 入力テキストボックス
という感じにしたいのですが、メロンの欄に7と入力すると
イチゴのテキストボックスまで7になってしまいます。
rs.MoveNextでレコード移動させても、抽出結果はレコード移動しても、
テキストボックス「個数」が移動してくれない。
前スレも見たのですが、どうもよくわかりません。
お手数おかけしますがよろしくお願いいたします。
ここで何日も詰まってしまって…お手上げです。
フォームでデータを入力して、テーブルに反映させようとしたら、 Can't add record(s): join key of table 'テーブル名' not in recordset. と出ました。一体何が悪いんでしょうか?
908 :
名無しさん@そうだ選挙にいこう :02/04/11 16:10
>>903 お返事ありがとうございます。
%でなく、*で試してみました。
普通の文字と一緒に扱われているようで、ワイルドカードには
ならないようでした。ヘルプを参照したら
% ・・・0個またはそれ以上の文字で構成される任意の文字列です。
_ ・・・任意の 1 文字です。
[ ]・・・指定した範囲 ([a-f]) またはセット ([abcdef]) 内に
ある任意の 1 文字です。
[^]・・・指定した範囲 ([^a-f]) またはセット ([^abcdef]) 内に
ない任意の 1 文字です。
となってました。
あと、902で書き込んだことに間違いがあったので訂正します。
全件引っ張ってくるものがあるとかきましたが、全件ではなかった
です。2000件くらい引っ張ってきてました。(データは3000件)
でも、引っ張ってくるものに共通点らしいものが見つからないです。
現在の検索の仕方が悪いようでしたら、方法を変えてもいいのですが
みなさんはどんな風に検索を行っているのでしょうか。
お知恵を貸してください。
909 :
名無しさん@そうだ選挙にいこう :02/04/11 17:13
>>908 *が文字列と同列で扱われてるって、絶対どっか間違ってるぞ。
もう一度SQLを見直せ。そこに原因があると思う。
ちなみに、AC2K、DAOバージョン3.6、データ件数7300件
という条件で、以下で正しく取れてるぞ。
Private Sub コマンド0_Click()
Dim rs As Recordset
Dim sql As String
sql = "select * from tableA where NameA like 'さとう*'"
Set rs = CurrentDb.OpenRecordset(sql, dbOpenSnapshot)
rs.MoveFirst
Do Until rs.EOF
Debug.Print rs!顧客名
rs.MoveNext
Loop
Debug.Print rs.RecordCount
Set rs = Nothing
End Sub
ちなみに、この*を%に変えるとレコードが1件も返らなくなるから、
やっぱりACCESSでは%は使えないんじゃないのか?
910 :
名無しさん@そうだ選挙にいこう :02/04/11 17:33
>>906 フォームが帳票形式(単票ではなく)の場合、詳細セクションの非連結テキストボックスの
値は、全部同じに表示されるよ。これはレポートでも同じ。
基本的には、
1.非連結ではなく連結フォームにする。
2.単票形式を使う。
このどちらかで解決できると思う。
>>906 を読んだ限りでは、帳票形式である必要がないと思うので、2案がいいと思う。
>>910 ご回答ありがとうございます。
実際は商品が何百とあるため、単票形式で一つ一つやるには不便なのです。
なので連結フォームにしてみたのですが、
コントロールソースに「個数」をしてすると#Name?と表示されてしまいます。
「このフィールドは'個数'フィールドに連結しているため、編集できません。」
とエラーが出て、入力できないし…。
何か、根本的なところが間違っているのでしょうか?
912 :
名無しさん@そうだ選挙にいこう :02/04/12 04:50
>>911 例えば、フォームヘッダーで商品区分=くだものを選択すると、
フォームの詳細に、メロン、イチゴ、・・・と表示されるということ?
とりあえずそうだとして書いてみる。
tableAは以下のように作る。
項目::: 商品区分、商品名、在庫数
--------------------------------
データ1:くだもの、メロン、7
データ2:くだもの、イチゴ、5
データ2:文房具、消ゴム、5
データ4:・・・・・・・
ヘッダーのコンボの更新後イベントに以下を記述。
forms!フォーム.recordsource="select * from tabeA where 商品区分='くだもの'"
forms!フォーム.requery
フォーム詳細セクションのテキストボックスはすべて連結。
在庫数以外は変更させたくない場合は、
コントロルのプロパティーを適時設定する。
こんな感じかな?
913 :
名無しさん@そうだ選挙にいこう :02/04/12 08:23
>>909 ご回答ありがとうございます。
わたしも絶対どっか間違ってると思います。
もう一度SQL見直します。
コード参考になります。ほんとにありがとうございました。
914 :
名無しさん@そうだ選挙にいこう :02/04/12 16:22
基本的なことですいません・・・。ルックアップウィザードについてなんです。 商品マスターテーブル(2000データぐらいあります) 商品コード 商品名 商品名 商品区分1 商品区分2 仕入テーブル(これから入力) 発注日 商品コード 数量 納期 商品区分1 商品区分2 上記のテーブルにあります。 仕入テーブルの商品コードにルックアップウィザードを設定して商品コードを選択したら “商品コードと商品区分1と商品区分2”がポポンポンポンと出てくるようにしたいのです。 これってルックアップウィザードで出来るんでしょうか? または、何か良い方法をご存知の方教えて下さい。 よろしくお願いします。
915 :
名無しさん@そうだ選挙にいこう :02/04/12 16:39
OLAPしたいのですが、アクセスで間に合いますか? 約200,000人の顧客情報と行動・購買履歴がデータです。 OLAPの解析ソフトを買う予算がありません。 もし\100,000円以下で買える簡易のOLAPツールがあったら 紹介して欲しいですが、アクセスである程度の分析が できるのなら自分でやろうと思っています。 当方マーケ担当、プログラミングは苦手です。 アドバイスお願いします。
916 :
名無しさん@そうだ選挙にいこう :02/04/12 16:52
ODBCってAccess2000をインストールしたら一緒にインストールされるんですか? VisualSutudioとかオラクルをインストールしないとダメなんですか?
917 :
名無しさん@そうだ選挙にいこう :02/04/12 19:44
Accessのフォームに置いたテキストボックスなんかの動作を Windows標準っぽい動きに出来ないでしょうか。 例えば、十時キー押したら次のコントロールに移らず、 そのテキストボックスの編集モードに入る、とか。
918 :
名無しさん@そうだ選挙にいこう :02/04/12 23:03
すごく不思議な現象なんですが、クエリーで値引率という列を表示しました。 テーブルの方でパーセント表示になっています。 その隣に、式1:1−値引率 という列を入れたんですが、答えが合わないのです。 例えば、値引率に5.0%という数字が入っていると、 式1には0.94999999255という数字が入ります。 書式をパーセントにすると95.0%になるのですが、この式1を他の計算に使うと 小数点以下が割り切れないで延々と続く状態になります。 さっぱりわかりません。何が原因なんでしょうか?
919 :
名無しさん@そうだ選挙にいこう :02/04/13 00:02
>>918 ううん〜よくある話だ。
答らしいものもあちこちによくある。
原因は・・・まあいいっしょ。僕も理解してない。
とにかくそういうことは起きるもんだって。あきらめましょ。
値引きとか言ってるぐらいだから、金額よね。
Int((1-[値引率])*[定価])
四捨五入するなら、Int((1-[値引率])*[定価]+0.5)
こんな大雑把なのじゃダメ?
いや、ダメなら他の方法考えて。
ところで、
僕んところも値引きなんてことがDBに入ってくるんで、
この際誰かに教えてもらいたいんだけど。
テーブルで割引率ってのは、0.何とかみたいに小数点入れた形に
しとくのが普通なんですか?
僕は整数にしてる。
10%引きなら10、20%引きなら20。
そのほうが後々の利用でいろいろ楽なことが多いから。
でも、このやり方が正しいのかどうかはまったく自信なし。
920 :
名無しさん@そうだ選挙にいこう :02/04/13 00:26
助けて〜 商品テーブル、顧客テーブル、販売履歴テーブルで、 販売履歴クエリを作成し、フォームから入力できるようになってます。 で、商品テーブルに「単価」があるんですが、「単価」って変動ありえるじゃないですか? でも、このまま「単価」を変更したら、例えば、今日変更したら、昨日の日付の単価まで変わってしまうと 単価はそのときのままで、過去の履歴を一覧表示させたいんだけど、どうやったらよいですか?
販売履歴テーブルに「そのときの単価」項目を追加。 初期値として商品テーブルの単価を使え
922 :
名無しさん@そうだ選挙にいこう :02/04/13 00:43
>>921 すいません
言い忘れてました
「単価」×「数量」で「金額」という部分があって
その方法だと「金額」が合わなくなって
新たにもう一つ「履歴テーブル」を作って、そこに現在の「販売履歴クエリ」のレコード
をアクションボタンで上書きしないで、追加できるようにできないかと考えてるんですが、
これって難しいんでしょうか?
923 :
名無しさん@そうだ選挙にいこう :02/04/13 03:14
>>918 そんなあなたにお勧めの本。
矢沢久雄著/日経BP出版センター
「プログラムはなぜ動くのか」
924 :
名無しさん@そうだ選挙にいこう :02/04/13 03:33
>>914 ルックアップウィザードでできるかどうかは知らんが、
ゴリゴリ書けばできるよ。
でも仕入テーブルに、商品区分1,2はいらないんじゃないの?
>>912 やっぱり連結がうまくいってなかったのかな?
設定しなおしてみます。
連結で出来るとわかったおかげで何とかいけそうです。
わかりやすくご回答していただき、
本当にありがとうございましたm(__)m
感謝です!
>>886 ずいぶん前の事なのですがありがとうございました。
すぐにお礼が言いたかったのですが、ウィザードリー
いやウィザード(ゲーオタ丸出し)が何故か起動されず、
色々苦戦してました。どうやらリレーションとフォームの
関係がまだ良く分かってない様です。ありがとうございました。
927 :
名無しさん@そうだ選挙にいこう :02/04/13 12:45
>915 OLAPとか使った事ないからどうRDBと違うのか良く知らないけど、RDBでもクエリを 使いこなせばプログラム書けなくてもデータ分析をできるよ。グラフも作れるし。 でもOLAPのソフトって高いねえ。ググって見たけど100万200万平気でするんだねえ。 15万(月額)とか。 >916 Access2000のインストールはもうしてる?してたら枚コンピュータの コントロールパネルにODBCデータソースってのがないかね? >917 オプションのキーボードで少しいじれる。 >920 922 「単価」×「数量」で「金額」を「そのときの単価」×「数量」で「金額」にしる。 過去の履歴はクエリを使いなさいな。
928 :
名無しさん@そうだ選挙にいこう :02/04/13 13:38
>927 すいません。そのやりかたわかりにくいので、こっちでいきたいんですが、 閉じるときのイベントの書き方がわからないです。 過去ログにあったやつです i)の部分どうすればよいですか? ↓ i)「フォームを閉じる」イベント時に、「販売履歴クエリ」の全データ切り取り→「販売履歴保存用テーブル」を開き 「追加貼り付け」 これで、価格改定履歴を見たいときはb)の「価格改定履歴テーブル」を、販売履歴を見たいときは i)の「販売履歴保存用テーブル」を見ればいい。「販売履歴保存用テーブル」はどことも関連付けられておらず、 ただ、「販売履歴クエリ」の1処理分の入力データを切り取り→追加貼り付けしているだけなので、 価格改定が頻繁にされようと、[販売価格]は影響を受けない。
TABLE_殴りたい人リスト 人名 西村 ひろゆき 源 義経 大河内 志保 山本 一郎 ・ ・ ・ 上記の様なテーブルがあるのですが 苗字のみ(西村,源,大河内,山本)を抽出したい場合にはどのようにすれば良いのでしょうか? Left関数だと苗字の文字数が限定されていないので上手くいきません(;´Д`)
必ず苗字と名前の間には全角スペースが入っています。
931 :
名無しさん@そうだ選挙にいこう :02/04/13 15:45
>929 Instr関数
932 :
877 886 927 :02/04/13 15:51
>926 >847 参照整合性と連鎖更新のチェックを付けました。 もしかしたらもしかして、だけどこの辺はずしてウイザード試して見たらどうだろ? ちなみに僕の場合はツール-リレーションシップは一切いじってないよ。 >928 ぬ?わかりにくいかなあ。普通のやり方だと思うけど。 >929 773-774を見てみそ。
933 :
名無しさん@そうだ選挙にいこう :02/04/13 16:07
>>932 なんとなくわかってきました
でも「初期値として商品テーブルの単価を使え」
この設定がわかんないです
>>932 なんとがいしゅつとは、、、
ずーっとこのスレ見てるのに、、、
Left([殴りたい人リスト![人名],InStr([殴りたい人リスト]![人名]," ")-1)
これでいいんですよねえ?
>932 そのときの単価のプロパティで既定値のとこさわればいいんですよね? うまくいかな〜い 商品テーブルを参照しに行ってないみたい 式の入れ方わからんです
>932 ちなみに =[商品マスター]![単価] としてます
商品テーブルは「商品NO」「商品名」「単価」の項目があり、 フォーム上では「商品NO」と「商品名」をコンボボックスにして、「単価」も 「商品NO」を入力すれば自動で入力されます。 現在は単価を削除し、「そのとき単価」を置いて苦闘中です。 まだ商品テーブル参照できてないですが、できてもコンボボックスは使えなくなるですか?
938 :
名無しさん@そうだ選挙にいこう :02/04/13 17:42
フォームのコントロールに構造体を返すFunctionというのは記述できない のでしょうか? コントロールの値に 「= testtest(1).a」と入力してリターンキーを叩い てもリターンキーが無視されてしまいます。保存もできないんですが。 お解りの方いらっしゃいませんか?
939 :
名無しさん@そうだ選挙にいこう :02/04/13 18:39
>>938 戻り値typeで宣言するだけだろ?
ナニ聞きたいんだかよーわからん(w
940 :
名無しさん@そうだ選挙にいこう :02/04/13 18:47
標準モジュールに戻り値にユーザー定義型を返すFunctionを書き、 それをフォームやレポートのテキストボックスの値として入れたい のです。
941 :
名無しさん@そうだ選挙にいこう :02/04/13 18:52
'ユーザー定義型宣言 Public Type LetterFormat smallstr As String '小文字部分(会社名) largestr As String '大文字部分(宛名) End Type 'レポート用のプロシージャ Public Function testtest(co As Boolean) As LetterFormat '引数 'co:法人フラグ(True=法人) Dim f As LetterFormat If co = True Then '法人 f.smallstr = "small" Else '個人 f.largestr = "large" End If testtest = f End Function これをフォームから呼び出して、 コントロールの値設定に =testtest(True).smallstr と設定したいのですが、上記の式が入力できないのです。 ユーザー定義型でなければ入力できたのですが。
>929 934 >Left([殴りたい人リスト![人名],InStr([殴りたい人リスト]![人名]," ")-1) カギ括弧閉じる(])が一個ないよ。んで、ちゃんと動けばそれでいいと思うよ。 >928 んと、長文になりそうだからちょっとまってて。頭から説明するから。
943 :
名無しさん@そうだ選挙にいこう :02/04/13 20:56
>>919 さん、
>>923 さん
よくあることなのですね。ちょっとホッとしました。
自分のやり方が悪いのかと思っていたから。
教えてくださった式を入れてみます。
本も本屋さんで探してみます。
>>932 私もそれかなと思い外してみた事はあったのですが、
それでもダメでした、、。
実は今妥協に妥協を重ね、当初質問させてもらった
方法からずれてきてしまいました。
ただやっぱりサブフォームの謎はどうしても引っかかって
来ます。例えばサブフォームの親子関係、同期に対してその階層構造は
絶対なんですかね?
と言うのは、ある入荷日に入った商品を記録するために、
入荷日テーブルから作った入荷日フォームの中に、
入荷品テーブルのフィールド群と商品マスタテーブルのフィールド群
混合で作った入荷品サブフォームを入れたのですが(分かりますでしょうか?)、
入荷品テーブルの商品番号フィールドに値を入れると、
商品マスタテーブルの商品番号フィールドに同じ値が入り、
その番号でマスタに記録されている商品情報が同じサブフォーム
に出てきます。理由は良く分かりませんがそうなってくれました。
しかし、同じサブフォームに表示されているのは都合が悪いので、
入荷品サブフォームに入っていた商品テーブルのフィールド群を
他のサブフォームとして作り直し、入荷日フォームの上に貼ると、
上と同じような同期をしてくれないのです。もちろんでしょうが。
で、今の商品テーブルのサブフォームのプロパティでソースオブジェクト
子リンクオブジェクト、親リンクオブジェクトを無理矢理設定し直そう
としたのですが、親も子もやはり階層構造に見合ったフィールドしか
選択出来ないようになっています。
それを無理矢理同じサブフォーム内にあった時の様な反応をしてくれる
様には出来ないでしょうか??
たぶんこんな質問をするのも、私が根本的にフォームの同期と階層構造、
それがリレーションの一対多の関係にどう関係してくるのか、、、。
一体どれを入れると何を参照してくれるのか、、が全然分かってないから
でしょうが、、。
>927 >Access2000のインストールはもうしてる?してたら枚コンピュータの >コントロールパネルにODBCデータソースってのがないかね? インストールはしたんですが、見当たりません。 追加インストールでも見つかりませんでした。
質問です。 サブクエリーと言うのはサブフォームのようには使えなんでしょうか? サブクエリーのプロパティでリンク親フィールドとリンク子フィールドを入力すると エラーが出てしまいます。(非連結・・・云々)
>>899 帳票フォームでテキストボックスに入れるという考え方が
マズくないかな。テーブルに入れてからフォームを再表示
じゃない?
948 :
名無しさん@そうだ選挙にいこう :02/04/15 07:57
初心者です。よろしくお願いします。 サブフォームの表示を表形式ではなくデータシートにしたいんですが、 どうしたらいいのでしょうか? 市販のマニュアルを見ながらやっていますが、フォームウィザードで選択可能な フィールドを選択したあと、マニュアルでは「メインとなるテーブル/クエリーを 選択してください」のダイアログが出るのに、私がやると出ません。 Access97でマニュアルもAccess97を使っています。 これでやると表形式しか出来ないんですが、作った後から変更することはできますか? また「メインとなるテーブル/クエリーを選択してください」のダイアログは どうしたら出るんでしょうか?
>>948 サブフォームのプロパティの「規定のビュー」をデータシートに変更する。
950 :
名無しさん@そうだ選挙にいこう :02/04/15 11:08
>>945 OSは? Win2000だったら、コントロールパネル - 管理ツールの中に
データソース(ODBS)ってのがあるはず。
すいません。Win2000でした。 管理ツールの中にありました。 お騒がせしました。 質問時に環境書くのは当然ですよね。 環境書いとけばいっぱつだったのに。 恥・・・逝ってきます・・・
952 :
名無しさん@そうだ選挙にいこう :02/04/15 23:44
>>949 ありがとうございます。
助かりました。
初心者なのですが教えてください。 マクロで省略記号(...)を入れる意味を教えてください。 あと、例えば入力ミスをチェックするマクロの中に、入力ミスがあったら なぜイベントをキャンセルするマクロが必要なのでしょうか? マニュアルを読んでも、頭悪くて理解できません〜 どなたかサルでもわかるように説明してもらえませんか〜? お願いします。
954 :
名無しさん@そうだ選挙にいこう :02/04/16 01:55
>>953 まず「イベント」とは、「フォームを開く」「レコードを移動する」
「テキストボックスのデータ内容が書き換えられる」といった事象のこと。
その事象が起こった時に、マクロやモジュールのプログラムを自動的に
呼び出すことができるようになっている。
また、「イベントのキャンセル」は、将棋や囲碁の「待った」のこと。
しかし、もう手を決めてしまった後は「待った」できないし、
クイズミリオネアでも「ファイナルアンサー」した後は回答を取り消し
できないのと同じで、「待った」できないイベントもある。
例えば、
「開く時」*→フォームを開くのを完了→「読み込み時」
「読み込み解除時」*→フォームを閉じるのを完了→「閉じる時」
「更新前処理」*→データの更新完了→「更新後処理」
イベントはこの順番で呼び出されるので、*を付けたイベントはキャンセル
(待った)できるけど、その後ではもうキャンセルできないというわけ。
で、イベントをキャンセルするとどうなるかというと、
「開く時」のマクロ中でイベントをキャンセル→フォームを開くのを中止
「読み込み解除時」のマクロ中でイベントをキャンセル→フォームを閉じるのを中止
「更新前処理」のマクロ中でイベントをキャンセル→データの更新を中止
になる。
955 :
名無しさん@そうだ選挙にいこう :02/04/16 01:57
>>953 マクロの...は、簿記で言う〃記号と同じ。つまり「上に同じ」。
条件式の列で、上と同じ条件を指定したい時に使う。
>>954 とってもよくわかりました。
イベントのキャンセル=マクロを中止することだと思っていました。
わかりやすい説明ありがとうございます。
>>955 省略するって意味ではないのですねーーー。
恥ずかしい・・・。
どうもありがとうございます。
957 :
名無しさん@そうだ選挙にいこう :02/04/16 10:49
すみません、必要に駆られて勉強をはじめた初心者なのですが バカな質問で恐縮ですが、ちょっと教えて頂ければありがたいです。 いまAccess2000を使っているのですが、手元の参考書が 97を元にした物です。 質問ですが、その本には個人住所録などひな形がたくさん出ているのですが うちの2000のウィザードには、それがありません。 元から省かれている物なのか、それともインストールミスをしているのでしょうか。 手元の本で、取り合えず勉強をしたいので教えて頂けますでしょうか。
後からインストールが可能でしたらその方法も すみませんお願いします。
959 :
お役立ちサイトです。 :02/04/16 11:27
960 :
名無しさん@そうだ選挙にいこう :02/04/16 13:36
テーブルに表をインポートしたんですが、同じデータがいくつもあるんです。 それを一つだけ表示させるというのは出来ますか? ID 名前 001 オレンジ 001 オレンジ 002 いちご 002 いちご 002 いちご ↓ ID 名前 001 オレンジ 002 いちご
961 :
名無しさん@そうだ選挙にいこう :02/04/16 13:57
ACCSにどうやったら逮捕されないのか質問するスレだと思たYO!
>>960 ACCESSってご存知ですか?
グループ化ってご存知ですか?
すみません 教えてください アクティヴなサブフォームを参照する方法はありませんか? フォームならActiveFormでいけるのですが…
>>963 With ActiveControl
If .ControlType = acSubform Then
サブフォーム = .Form
Else
サブフォーム = Nothing
End If
End With
965 :
名無しさん@そうだ選挙にいこう :02/04/16 23:52
>962 いえ、あの・・クエリーではなく、テーブルでしたかったんです。 でもクエリーでなければ出来ないのでしょうね。 どうもありがとうございました。
>>965 >962ではないけど
一回限りなら、新規作成クエリーにしてグループ化したものを書き出せばいいでしょ
967 :
名無しさん@そうだ選挙にいこう :02/04/17 15:12
●コンボボックスの連結列について コンボボックスに複数のフィールドを表示させてコントロールの値は例えば 2番目の列を指定したいのですがプロパティで連結列を2に指定しても必ず 一番目のIDの列が入ってしまいます。 これはなぜなんでしょう? こんな感じで表示させたいんですが。 ID 名前 住所 1 山田 江戸川区... 2 山本 新宿区... : どうか、ヒントをください。
>>928 おまたせしたです。ちょっと忙しかったんだ。スマソ
と〜っても長文です。みなさんゴメン。
テーブル設計
勝手にテーブルきめつけちゃうけど、必要な項目付け足してね。
例えば、通販とかで送料が必要なら販売履歴テーブルに、メーカーの型番を入力したいなら
商品テーブルに、とか。
どのテーブルも一番左が主キーでオートナンバー、他のテーブルの主キーは数値型の長整数型
(販売履歴テーブルの顧客IDとか)、単価や金額などのお金のものは通貨型にしてね。
個数・総個数は数値型の長整数型、
商品テーブル 商品ID,商品名,単価
顧客テーブル 顧客ID,顧客名,住所,TEL
販売履歴テーブル 履歴ID,顧客ID,販売日,総個数,金額,消費税,請求額
販売明細テーブル 明細ID,履歴ID,商品ID,販売単価(そのとき単価じゃチョトカコワルイカラ),個数
>商品テーブル、顧客テーブル、販売履歴テーブルで、
販売履歴を2つに分けたけど、これは今までのだと一回の注文で1種類の商品しか選べないから。
商品検索 商品テーブルを元にフォームを作る。デザインビューで新規にフォームを作って、 レコードソースを商品テーブルにする。フィールドリストから商品テーブルのフィールドを ドラッグ&ドロップ。フォームを右クリックしてフォームヘッダーを表示、フォームフッターは 高さを0にする。既定のビューを帳票フォームにする。フォームヘッダーにテキストボックスを 作ってラベルの文字とテキストボックスの名前を商品名検索に変える。 テキストボックス商品名検索の更新後処理をイベントプロシージャに変えて 右に出る[...]をクリックしてVBAのウインドウを表示、そこに以下をコピペする。 Private Sub 商品名検索_AfterUpdate() If Me![商品名検索] <> "" Then Me.RecordSource = "SELECT 商品テーブル.* FROM 商品テーブル WHERE (((商品テーブル.商品名) Like '*" & Me![商品名検索] & "*'));" else Me.RecordSource = "SELECT 商品テーブル.* FROM 商品テーブル" End If End Sub 1行目と7行目はウインドウを開いたときに既に入力されている状態だと思うので 間の2〜6行をコピペする。これで商品名検索に商品名の一部を入力してEnterを押すと 商品が検索され、商品名検索をからにしてEnterすると全商品を表示する。 なお、SELECT 商品テーブル〜中略〜& "*')); をクエリをSQLビューで表示したものに コピペしてデザインビューでみると多少勉強になる。デザインビューで並べ替え等を 選択して、SQLビューに戻して、改行を半角スペースで置き換えたものと 入れ替えることもできるよ。 このフォームは商品検索という名前で保存しておく。
顧客検索 商品検索と同様に作る。新規フォームのレコードソースを顧客テーブルにして、 フィールド持ってきてヘッダーに顧客名検索テキストボックス作って 更新後処理のイベントプロシージャに Private Sub 顧客名検索_AfterUpdate() If Me![顧客名検索] <> "" Then Me.RecordSource = "SELECT 顧客テーブル.* FROM 顧客テーブル WHERE (((顧客テーブル.顧客名) Like '*" & Me![顧客名検索] & "*'));" Else Me.RecordSource = "SELECT 顧客テーブル.* FROM 顧客テーブル" End If End Sub をコピペ。同じようにTEL検索とかテーブルに顧客名ふりがなを追加して ふりがな検索等作っても良いね。 このフォームを顧客検索という名前で保存。
販売履歴サブ販売明細 販売履歴を入力するフォームを作るんだけど、まずサブフォームから。 新規フォームを作ってレコードソースを販売明細テーブルに、 既定のビューを帳票フォームにする。フィールドリストから全部持ってきて 明細IDと履歴IDはページヘッダーに移動する。 商品IDのラベルを商品名にして、商品IDを右クリック、コントロールの種類の変更で コンボボックスに変える。名前とコントロールソースは商品IDのまま変更しないでね。 商品IDコンボボックスの列数を2に、列幅を0cm;3cm、リスト行数を100、値集合ソースを 商品テーブルに変える。値集合ソースの右に出る[...]をクリックするとクエリビルダが 起動するので商品名順に並べ替えとかできるよ。 商品IDコンボボックスの更新後処理のイベントプロシージャに Private Sub 商品ID_AfterUpdate() Me![販売単価] = DLookup("単価", "商品テーブル", "商品ID =" & Me![商品ID]) End Sub をコピペ。これで、商品IDコンボボックスの▼をクリックすると商品名がズラリ。 選ぶと販売単価に単価の値段が入力される。テキストボックスを追加して名前と表題を 小計とする。コントロールソースに =[販売単価]*[個数] と入力。書式を通貨にする。 名前を販売履歴サブ販売明細として保存。 で、さっき作った商品検索との連携。モジュールの新規作成で以下をコピペ。 Public ShohinID As Long Public ShohinTanka As Long 商品情報モジュールとでも名前つけて保存。 フォームの商品検索に新規でコマンドボタンを作って、名前と表題を商品選択に変更。 クリック時のイベントプロシージャで、 Private Sub 商品選択_Click() If IsNull(Me![商品ID]) = False Then ShohinID = Me![商品ID] ShohinTanka = Me![単価] Else ShohinID = 0 ShohinTanka = 0 End If End Sub とする。フォームの販売履歴サブ販売明細にコマンドボタンを追加して名前と表題を 選択商品を貼付とする。クリック時のイベントプロシージャに Private Sub 選択商品を貼付_Click() Me![商品ID] = ShohinID Me![販売単価] = ShohinTanka End Sub をコピペ。これで、商品検索で商品を探して商品選択をクリック。販売履歴サブ販売明細の 選択商品を貼付をクリックすると選択した商品を貼り付けることができる。
販売履歴 新規でフォームを作って、レコードソースに SELECT 販売履歴テーブル.*, [顧客テーブル].[顧客名], [顧客テーブル].[住所], [顧客テーブル].[TEL] FROM 販売履歴テーブル INNER JOIN 顧客テーブル ON [販売履歴テーブル].[顧客ID]=[顧客テーブル].[顧客ID]; をコピペ。同様のクエリを作っておいてそれをレコードソースにしてもいい。 販売日の既定値を Date() とすると、新規の入力の際に今日の日付が自動で入る。 顧客検索からの選択を作ろう。あ、今の状態でも顧客IDがわかっていれば入力すれば 顧客名とか住所が表示されるよ。で、顧客検索のフォームにボタンを作って 名前と表題を顧客選択に変更。クリック時のイベントプロシージャに Private Sub 顧客選択_Click() Forms![販売履歴]![顧客ID] = Me![顧客ID] End Sub とする。あ、このフォームを販売履歴として保存してね。あと「データ入力用」を「はい」にして フォームを開いたときに常に新しいレコードを開くようにする。
計算用のクエリを作る。新規でクエリを作ってSQLビューにして以下を貼りつけ。 SELECT [販売明細テーブル].[履歴ID], [販売明細テーブル].[商品ID], [販売明細テーブル].[販売単価], [販売明細テーブル].[個数], [販売単価]*[個数] AS 小計 FROM 販売明細テーブル; 販売明細小計クエリとして保存。もう一つクエリを作ってSQLビューに以下をコピペ。 SELECT 販売明細小計クエリ.履歴ID, Sum(販売明細小計クエリ.個数) AS 総個数, Sum(販売明細小計クエリ.小計) AS 金額 FROM 販売明細小計クエリ GROUP BY 販売明細小計クエリ.履歴ID HAVING 販売明細小計クエリ.履歴ID=Forms![販売履歴]![履歴ID]; 販売明細小計の合計クエリとでも名前をつけて保存。このクエリを元にフォームを作って 全部のフィールドを持ってきて販売履歴計算用として保存する。 フォームの販売履歴にコマンドボタンを作って、名前と表題を「計算」とでもしておこう。 この計算ボタンのクリック時に以下をコピペ。 Private Sub 計算_Click() DoCmd.DoMenuItem acFormBar, acRecordsMenu, acSaveRecord, , acMenuVer70 DoCmd.OpenForm "販売履歴計算用" Me![総個数] = Forms![販売履歴計算用]![総個数] Me![金額] = Forms![販売履歴計算用]![金額] Me![消費税] = Me![金額] * Shohizei / 100 Me![請求額] = Me![金額] + Me![消費税] DoCmd.Close acForm, "販売履歴計算用" End Sub あ、新規モジュールで消費税を作るの忘れてた。モジュールを新規で作って、 Public Function Shohizei() As Integer Shohizei = 5 End Function をコピペして、消費税と名前をつけて保存。将来消費税率の変更があったらここを変える。
過去の販売履歴 過去の販売履歴を参照するボタンを作る。以下を新規クエリのSQLビューに貼りつけ。 SELECT 販売履歴テーブル.販売日, 商品テーブル.商品名, 販売明細テーブル.販売単価, 販売明細テーブル.個数 FROM (販売履歴テーブル INNER JOIN 販売明細テーブル ON 販売履歴テーブル.履歴ID = 販売明細テーブル.履歴ID) INNER JOIN 商品テーブル ON 販売明細テーブル.商品ID = 商品テーブル.商品ID WHERE 販売履歴テーブル.顧客ID=Forms![顧客検索]![顧客ID]; 過去の販売履歴という名前で保存。顧客検索にコマンドボタンを作って、名前と表題を 過去の販売履歴としてクリック時のイベントプロシージャを Private Sub 過去の販売履歴_Click() DoCmd.OpenQuery "過去の販売履歴" End Sub と、する。とりあえずこんなもんでそれなりになると思うんだけど、どうかな。
>963 サブフォームがアクティブになったときにどっかにどのサブフォームの 何番か書いておいて、必要になったときそこを見に行くのでどうでしょ。
977 :
名無しさん@そうだ選挙にいこう :02/04/17 16:52
すいません・・・どなたか教えて下さい。 クロス集計表で 商品 2001/12 2002/1 2002/02 2002/03 2002/04・・・・ ●● 10 20 15 20 100 ×× 5 100 35 45 50 △△ 47 98 35 487 78 ・ ・ こんな表を作りました。 これをレポートにしたいんですが、月で検索(Between[ ] and[ ] )みたいな事って 出来るんでしょうか? よろしくお願いします。
978 :
名無しさん@そうだ選挙にいこう :02/04/17 17:06
レポートで顧客一覧を印刷したいんですが 印刷したくない顧客がある場合はどのようにしたらいいでしょうか? 一応、顧客テーブルに、チェックボックス作って 印刷するのとしないのとで分けてるんですが チェックボックスにチェックが入ってる欄だけ印刷ってのはできますか?
>>967 私も知りたい。一番左の値(IDなど)を表示したまま選択したらその名称などを表示できればいいのに。私はできないから、となりにテキストボックスを作ってコンボボックスのcloumnを使って名称などを表示させている。
>>978 レポートのプロパティのフィルタを使うか、レコードソースにチェックしてるもののみ抽出するクエリーを割り当てる。
981 :
名無しさん@そうだ選挙にいこう :02/04/17 18:48
>>967 どうもバグっぽいんだけど、
画面上は表示されなくてもテーブルにはちゃんと入ってない?
画面上でも列2を表示させたいということだったら、とりあえず、
列幅を、0,2,0とかにすれば表示されるようになると思う。
>>979 連結列を1列目にして、あとは上記同様
列幅を0,2,2とかにすれば表示されるよ。
>>981 そうすっとコンボボックスにIDが表示されないからいかんのよ。しょうもないことを気にする人間が多くて面倒。
983 :
名無しさん@そうだ選挙にいこう :02/04/17 23:30
そろそろ次スレを…
>>927 忙しい中、ありがとうございました。
実はですね、会社で作ってたものなので、止まってるわけにもいかず、
いろいろ考えて、新たにリレーションを持たない「履歴保存用テーブル」を作成し、それをもとに
「追加クエリー」をつくることで解決できました。
もとから作ってた「商品テーブル」、「顧客テーブル」、「販売履歴テーブル」と「履歴保存用テーブル(前3つとのリレーションなし)」
といった構成です。
「商品テーブル」、「顧客テーブル」、「販売履歴テーブル(メインになるテーブル)」から
入力用の「販売クエリ」をつくりこれを入力フォームにしました。
そのフォームに「履歴保存ボタン」をつくり、マクロで「追加クエリー」を実行し、「履歴保存用テーブル」にレコード
を書き込んだ後、入力フォームにあるデータを全て削除するという具合に設定しました。
「履歴保存用テーブル」には他とのリレーションがないので、レコード削除されるのはメインである「販売履歴テーブル」
からのみで、「商品テーブル」、「顧客テーブル」などは影響を受けず、これで単価の変動があっても対応できるようにしました。
せっかく回答くださったのに申し訳ないです。
ちょっと全レコード削除のところで手間取って、数時間前にようやくクリアできたところでした。
いろいろ知らないやり方を書き込んでくださってるので、次回作の参考に活用させてもらいます。
ありがとうございました。
>>981 バグですか?あれは。
Access95の時代から仕様だと認識していました。
# って言うか、コンボボックスの振る舞いって他のRADツールでも大差ないと
# 思うのですが。。。
>>967 気休め程度にしかならないかもしれませんが
1.値集合ソースにテーブルを指定しているなら -> SQLに変更
例.select 名前, [ID] & " " & [名前] & " " & [住所] AS Dsp_Data from table_name;
2.連結列を1とする(コントロールの値を名前フィールドの値にするため)
3.列数は2とする (SQLの戻り値、名前とDsp_Dataの2フィールドを取り扱うため)
4.列幅は0cmを指定 (何も指定しないと名前フィールドが表示されるので
この様に指定して2番目のDsp_Dataフィールドが表示されるようにする)
こうすることで、選択中、選択後もコンボボックス内に表示させたいフィールドの
値を納められます。。。が、かなり横長のコンボボックスを設けてやらないと
データの表示欠けが生じます。(スクロールバーがつきませんので)
まぁ、常時表示するフィールド値をIDと名前に止めておくのが現実的なような気が
しますが。
他にエレガントな解があったらよろしくお願いします。
新スレ立ったのでsageます。 ●コンボボックスの連結列について ヒントをくださったみなさま、感謝です。 一番左側のフィールドが格納されるというのはやっぱりバグ、 というか仕様なんですか。うーむ。 とりあえず、コンボボックスのメニューには左から 名前 住所 ID というようにしてしまいました。 あとはコントロール.column(n)でIDを取り出すようにしました。 どうもありがとうございました。
989 :
名無しさん@そうだ選挙にいこう :
02/04/21 08:29 アクセスを作業中に「サブフォーム」を消してしまいました。 作り直すことができるでしょうか。 宜しくお願い致します。