質問される方へ
・OS、ACCESSのバージョンを明記してください
・質問内容は具体的に書いてください
テーブル/フォームの構成、クエリ、VBAの内容など差し支えない
範囲で詳しく書くと、早く回答が得られるかもしれません
(聞き返さなくても詳細が把握できる質問が望ましいです)
・事前にヘルプ等で調べられる範囲は調べてください
・下記テンプレートの使用を推奨します。
---------- ここから ----------
【. 目 的 】 (何がしたいのか必ず記入。)
【. 条 件 】 (使用OS、ACCESSのバージョン など)
■試したけどうまくいかなかった処理
【. 概 要 】 (どんな処理を試したかを説明)
【駄目な理由】 (動作状況など)
■これだけはやりました
【
>>1 を読んだ】 はい・いいえ (読まない人が多いので必ず目を通してください)
【Googleで調べた】 はい・いいえ (大概の疑問は検索することで解決します)
【検索キーワードは?】 (全て列挙してください)
---------- ここまで ----------
前スレッド ACCESS総合相談所 その12
http://pc8.2ch.net/test/read.cgi/bsoft/1106963038/ 過去スレッド/関連リンクは
>>2 以降
3 :
名無しさん@そうだ選挙にいこう :2005/07/11(月) 13:28:50
**テンプレ追加 ■アドバイスを受けたら経過・結果の報告をして下さい。 ギブアンドテイクの精神で情報を共有しましょう。
前スレでくだらない疑問に答えてくれた方々、
ありがとうございました。
>>988 嘘をついていないことを証明するために
エンジン部分だけを載せました。
実際には
Do Until rs1.EOF
for i = 1 to n
if isnull(rs1(("商品" & i))) Then
Exit For
End if
rs2.Addnew
rs2!商品 = rs1("商品" & i)
rs2.Update
Next
rs1.Movenext
loop
としてあります。
データは最大nを超えない不定数ですが
商品1から連続して入っていることが保証されていますので
これで問題ないと考えています。
>>6 この件に関しては、バカの課題提出期限過ぎた後にもう一度ゆっくり語ろう
授業出ずに慌ててる奴だから期限ギリギリの追い込みだろう (俺も同様な経験多し) 今週中が期限と見た
で、Access本体はないんかな?
10 :
名無しさん@そうだ選挙にいこう :2005/07/12(火) 11:08:44
Access 2002 SP3です。 デザインビューのフィールド名、データ型、説明の一覧を印刷したいと考えています。 画面をキャプチャして画像を印刷、データベース構造の解析から印刷、デザインビューを見ながらエクセル等に手入力して印刷、mdbファイル解析ツールを使用しての印刷 以外の方法で印刷する方法はないでしょうか。
>>10 システムテーブルの情報を開いてレポート作成。
12 :
10 :2005/07/12(火) 13:15:54
システムテーブルを開いて、というのは SQLビューで、SELECT * from MsysObjects; を実行すればいいんでしょうか? この状態でレポートを作成する方法がわかりませんでした。
13 :
名無しさん@そうだ選挙にいこう :2005/07/12(火) 15:08:19
DBもどきを触って必死こいてるウンコ製造機の集いはここでつか?
日本オラクルでリストラされた方が遊び相手を求めてくるスレはここでつか?
なんかそのもったいぶった言い方って嫌だなって思うの、つーか、
>>11 =?
>>15 も適当に言ってて自分も解かんないんじゃないかなって思うの
>>16 あおって答えを聞き出そうとしているのがバレバレで恥ずかしい。桐にしとけ。
自分も解ってないに一票
桐なら簡単なのになぁ
>>16 お生憎様。
どうしてもやりたければググれば分かるよ。
23 :
名無しさん@そうだ選挙にいこう :2005/07/12(火) 19:09:34
帳票型の連結サブフォームで各行に登録ボタンを配置しています。 このボタンをクリックすると別のレコードにデータを書き込んだ後に、連結レコードの登録日時を上書します。 データを修正して他のレコードに一旦移動してから、戻ってクリックすると問題ないのですが、 データを修正してそのまま同じ行のボタンをクリックするとエラーになります。 「実行時エラー’2107’: 入力した値は、フィールドまたはコントロールで定義されている入力規則に従っていません。」 となるのですが、入力規則等は設けていません。 Me.Recordset.Update を一行目に入れたり、親フォームに一旦フォーカス移すなどしても同じくエラーになります。 原因や対処法がわかる方は是非教えて下さい。
24 :
10 :2005/07/12(火) 19:10:33
グーグルで「access システムテーブルとは」 で検索してもヒットしなかったのでいろいろ単語を代えたりしてたのですが、 VBA?のサンプルらしきものは見付かったのですが、 access上での操作がわかりませんでした。 とりあえずもう少し時間があるので調査するとして 桐ってなんですか?
>>23 オマエ、日本語が不自由ならせめてコードを記載するか桐にしとくか、どちらかにしろよ
27 :
10 :2005/07/12(火) 19:37:46
10です。ツールのオプションのシステムオブジェクトにチェックを
いれると、テーブルにMsys〜などのテーブルが表示されました。
おそらくこれがシステムテーブルだと思うのですが、
例えばMsysObjectsをダブルクリックして表示される
情報は
>>12 で書いたSQLで表示されるデータと同じでした。
またこのテーブルにはデザインビューで表示される各フィールドの説明の項目が
見当たりません。どうやってレポート作るんでしょうか?
>>27 やめとけ、お前が期待している程のものは得られん
>>11 は只の知ったかだ
>>28 うーん、どうやらそうみたいだな。
とでも言って欲しいのか?
>>30 俺は全然必要としていないんだがこうまで焦らされると知りたくなってきたw
一ヶ月後くらいにこっそり教えてくれ。
32 :
23 :2005/07/12(火) 20:52:52
>>26 親フォーム:受注伝票テーブル(受注伝票ID、顧客ID、日付、etc)
サブフォーム:受注明細テーブル(受注伝票ID、商品ID、Old受注数、New受注数、受注テーブル登録日時、etc)
サブフォームからの書込先:受注テーブル(顧客ID 商品ID 受注数、etc)
サブフォームのボタン_Click
Me.Recordset.Update
Forms!親フォーム.SetFocus
Call ストアドを実行する(引数-顧客ID,引数-商品ID)
Me.Requery
End Sub
「ストアドを実行する」はADOにてSQL SeverのストアドプロシージャCallする以下のようなサブプロシージャです。
1.受注テーブルをUPDATEする
2.受注明細テーブルの受注テーブル登録日時をUPDATEする
>>23 > データを修正してそのまま同じ行のボタンをクリックするとエラーになります。
データを修正して、[shift + Enter]押して その後クリックするとどうなる?
つーか経理処理は桐にしとけ
34 :
名無しさん@そうだ選挙にいこう :2005/07/13(水) 00:18:19
Access2000で質問です。 outputtoって、Word形式だとrtfしか対応していないようなのですが、 同じようにしてdocで保存するような技ってありませんでしょうか?
>>34 エクスポートのこと?
だとしたらマクロで「出力」選んで
出力形式をリッチテキスト形式
それで出力ファイルの拡張子を.docじゃ駄目?
outputto まで読んだ
ミクロソフトのオートロックエクスプレスというメールソフト
38 :
23 :2005/07/13(水) 09:29:21
>>23 =
>>32 です。
>>33 [shift + Enter]押してクリックすると問題なく動きます。すごい。ありがとうございます。
これをVBA上でするのには、Me.Recordset.Update ではないのでしょうか?
39 :
名無しさん@そうだ選挙にいこう :2005/07/13(水) 10:41:24
>>35 レスありがとうございます。
DoCmd.OutputToにて、acFormatRTF,出力ファイル名.docにするという事
でよろしいのでしょうか?
>>38 編集フォームにフォーカスがある状態で
Application.RunCommand acCmdSaveRecord
41 :
23 :2005/07/13(水) 15:18:17
Application.RunCommand acCmdSaveRecord でできました。 有難うございました。
42 :
名無しさん@そうだ選挙にいこう :2005/07/13(水) 16:23:54
, -'"´  ̄`丶、_ ,.∩ `ヽ 〃∪'´ ̄`二二人\ ヽ | ツ´ ̄ ̄ ̄ ̄´ ヾ ヽ. ', |ハ ,ニ、 ,. - 、 | | | l | | ハ ィハ ,二ヽ. | | | | | 同じ板にコピペするとそのままだけど、 | | | じ' |トJ〉 /)} l | 違う板にコピペすると鬼のような怖い顔 | ハ 、'_,  ̄,, 厶イ川| に変わる摩訶不思議な佳子様コピペ。 l l /\ .. イV\川 | ,' l l ,イ `l ̄´ / /ヽl l l | l ハ `メ、 〃 ヽヽ、__ノ
>>39 そういうこと。
ACCESSに.doc形式がないのは多分だけど
それほど複雑な書式がないからだと思うのですよ
(リッチテキスト形式で済んでしまう程度)。
ファイルが肥大化しそうだけど、
それで問題ないんじゃないかな?
まあ、俺が言っていることが大間違いだったら
誰かが訂正してくれるでしょ。
44 :
名無しさん@そうだ選挙にいこう :2005/07/13(水) 23:32:58
そのレコードがそのテーブルorクエリからきたかの情報を取得する関数はありますか? たとえば、月別の売上テーブルをくっつけたユニオンクエリがあって 日付 金額 04/01 10,000 05/03 20,000 05/10 10,000 とあって、さらに売上月フィールドを加えて、売上月フィールドにはExcelのFilenameのような関数を入れて 日付 金額 売上月 04/01 10,000 04月度 05/03 20,000 05月度 05/10 10,000 05月度 としたいのですが・・・・・ よろしくお願いします
>>44 よく解らないんだけど、単純に末締めだったら
月でグループ化してしまえばいいんじゃないの。
どういうテーブル構造か知らないけど。
なんかDB的なやり方じゃないような気がする。
46 :
44 :2005/07/14(木) 00:12:08
すいません、もうちょっと説明しますね テーブル: 04月度売上 売上ID 日付 商品 金額 001 04/01 さきいか 10,000 002 04/15 きくらげ 30,000 テーブル: 05月度売上 売上ID 日付 商品 金額 003 05/14 さきいか 30,000 004 05/29 ちくわぶ 15,000 005 05/30 きくらげ 50,000 クエリ: 売上一覧 (ユニオンクエリ テーブル: 04月度売上とテーブル: 05月度売上) 売上ID 日付 商品 金額 テーブル名 001 04/01 さきいか 10,000 04月度売上 002 04/15 きくらげ 30,000 04月度売上 003 05/14 さきいか 30,000 05月度売上 004 05/29 ちくわぶ 15,000 05月度売上 005 05/30 きくらげ 50,000 05月度売上 で、売上一覧のテーブル名フィールドにそのレコードがどのテーブルorクエリからきたかの情報を取得する関数を入れたいのですが
>>46 ごめん。俺じゃ役に立ちそうもないや。
46でいう売上一覧がテーブルで
そこから各月の売り上げテーブルが
クエリになるようなことしかやったことないから。
48 :
44 :2005/07/14(木) 01:24:02
>>47 いえいえ、どういたしまして
余談ではありますが、
>>46 のようなやり方も基本中の基本ですから覚えておくと便利ですよ
月別の売上データから累計の売上データ作ったり、複数の人があげてきた報告をとりまとめたりとか
ちょっと例の挙げ方が適当すぎかもしれませんがw
49 :
44 :2005/07/14(木) 01:51:52
自己レス SELECT MsysObjects.Name, 売上一覧.日付, 売上一覧.商品, 売上一覧.金額 FROM MsysObjects, 売上一覧 WHERE (((Left([Name],4))<>"Msys") AND ((MsysObjects.Type)=1)) ORDER BY MsysObjects.Name; こんな感じでうまくいきました もう眠くて倒れそうなのでかなり適当だけど基本的な考え方はあっているはずw 面倒だったので売上一覧のほかにもう1つクエリつくちゃったので、あとは暇な人、手なおしよろです よかったらテンプレに追加もよろ でも普通、そのレコードがどっからきているかなんてあまり知る必要ないかなー ^^;
>>49 連結してないから、レコードのかけ算になってるだけだろ。
方法はいろいろあるが、そもそも処理単位をテーブルに分割する発想が
DBにそぐわない。
>>44 月が替わるたびにテーブルを追加してクエリを修正するのか?
クエリに手が入れられるなら、
SELECT A.*, "A" AS sTableName FROM A
UNION SELECT B.*, "B" FROM B
ってやれば?
53 :
名無しさん@そうだ選挙にいこう :2005/07/14(木) 09:32:06
ACCESS2003でクエリを選択クエリを使って 商品コード 商品名 1122 りんご 2233 みかん 2345 なし と、商品コードで昇順に並べ替えたのですが、このクエリを使って 通し番号 商品コード 商品名 1 1122 りんご 2 2233 みかん 3 2345 なし というテーブル作成クエリを作ることはできますでしょうか? ものすごく馬鹿な質問なのかもしれませんが、よろしくお願いします。
つーか、連番付けたいだけ?
56 :
53 :2005/07/14(木) 09:44:23
>>55 とりあえずのところは、連番をつけるところがわからないのです。
58 :
53 :2005/07/14(木) 10:08:14
サラリーマンなので使用ソフトは自由にはできないんですよね。。。 ACCESSのVBAの知識があまりないということもありますが、 自分以外の人間に引き継ぐときにあんまりややこしいコードを残したくないので なるべくクエリで処理してしまいたいというところなのです。 やっぱり難しいんでしょうか。
>>58 そのためにもVBAでスタンダードな対応をしておいた方がよい。
裏技使ってゴチャゴチャやる方が後任者はよっぽど迷惑だぞ。
怖がらずにVBA勉強汁。
入門編としてはうってつけだぞ。
>>59 他人のVBAを引き継いで苦労した経験があるのです。
うちの人事だと次の人はVBA全く知らない可能性もありますので余計に。。。
いろいろぐぐったりして試してますがやはりうまくいっていません。疲れた
とりあえず、実験用にリレーションシップ使って、 商品コードを主キー ーー 外部キーにして 通し番号入れる別テーブル作ってみれば? そんで、そいつをEXCELに持ってくる EXELで連番はマウスでガー引っ張ってくれば、こんな処理は得意中の得意 そんでそいつを再びACCESSにインポートする リレーションシップなら表を線で繋ぐだけだから、楽だし
>>53 簡単にやりたいの?
VBA使いたくないんだったら、テーブルを作成してからオートナンバーフィールドを追加しろ
それが嫌なら、桐にしとけ
>>24 > 桐ってなんですか?
ここでの質問の殆どは桐を使えば簡単に解決する。
ただ、『貧乏人はAccessで頑張るのが美徳、古き日本の良き伝統なり』
>>63 いいかげん無価値な押しつけはヤメレ。
移行なんぞできないヤシが大多数だ。
>>60 他人の意味不明なVBAを引き継げる程度にはスキルがあるってことか?
それにしては随分と入門編な質問なんだが・・・
>>66 他人のVBAを引き継いで苦労した経験=
引き継いだMDBにVBAが使われてて即×ボタンを押した経験
68 :
名無しさん@そうだ選挙にいこう :2005/07/14(木) 13:32:23
Win-XP/2K Access2002/2000 下記のフィールドを持つテーブル(読取専用ODBC経由)があります。 顧客ID 商品番号 メーカーID 売上年月日 売上数 仕切 販売価格 ここから、任意の顧客ID一つと 商品番号複数個を選択し、 縦に月、横に商品の集計をかけたいのです。 (同じ月に当然、同じモノが数回売れます) 顧客数は約2000程、商品番号は約15万点あり、その中から指定した 顧客に出荷している特定の商品についてトレースをしたいのです。 ↓はき出すテーブルのイメージ 4月 5月 6月 7月 8月 9月 森永 1234 ブラックチョコレート 5ヶ 2ヶ 1ヶ 1ヶ 0ヶ ・・ 明治 2345 ミルクチョコレート 0ヶ 1ヶ 1ヶ 2ヶ 5ヶ ・・ 結果的にはExcelのピボットで簡単に作れるのですが、数が多すぎて 毎月作るのは不可能なのです・・・。 売上げ年月日から月を出すのはクエリ上でFormatすれば出来ましたが その先で既に行き詰まってしまっています 1.顧客毎、商品番号はどこかに保存しておきたい。 2.使用時には顧客IDを放り込めば事前に指定した商品番号に対して 月毎集計&吐き出しをしてくれる。 3.Excelで吐き出したい時もある。 以上、何とかご教授をお願い出来ませんでしょうか。
>>68 > 1.顧客毎、商品番号はどこかに保存しておきたい。
適当にテーブルを作って保存しておけばいい。
> 2.使用時には顧客IDを放り込めば事前に指定した商品番号に対して
> 月毎集計&吐き出しをしてくれる。
まず、
森永 1234 ブラックチョコレート 4月 5ヶ
森永 1234 ブラックチョコレート 5月 2ヶ
森永 1234 ブラックチョコレート 6月 1ヶ
森永 1234 ブラックチョコレート 7月 1ヶ
森永 1234 ブラックチョコレート 8月 0ヶ
明治 2345 ミルクチョコレート 4月 0ヶ
明治 2345 ミルクチョコレート 5月 1ヶ
明治 2345 ミルクチョコレート 6月 1ヶ
明治 2345 ミルクチョコレート 7月 2ヶ
明治 2345 ミルクチョコレート 8月 5ヶ
こういう集計クエリを作る。
次のキーワードは「クロス集計クエリ」
> 3.Excelで吐き出したい時もある。
CSVで吐き出してExcelで開くとか、オートメーションでExcelデータを
直接作るとか好きにすればいい。
4.桐にしとけ
>>68 こういうのは桐の得意技なんだが、、
Access のピポットで出来ないのかね
>>66 うーん、ご指摘の通り、教科書を読みながら何とかやってます。
Excelではチョコチョコ使っていましたのである程度は理解できます。
Accessではまだまだクエリが難しく、何とかマスターしたいと思っています。
もうちょっとがんばってみます。
じゃあやっぱりVBA勉強しようぜ。 はじめはみんな怖がるけど慣れるとそれ無しじゃ生きていけなくなるよ。
74 :
名無しさん@そうだ選挙にいこう :2005/07/14(木) 17:57:29
おーお、少しこない打ちにずいぶんウンコ製造機が湧いたな! 臭いからスレ削除汁!
>>74 遊んで欲しいの?
だったら何か芸しろよ w
76 :
68 :2005/07/14(木) 19:28:32
>>69 有り難う御座います。
月毎クロス集計することろまでは出来ました!
後は、
顧客IDが600 の時は 1234,2345,2234
顧客IDが800 の時は 2234,2345,5432
といったように、顧客によって検索対象(1顧客に対して10〜30品目)を
変えたいのですが、メンテナンスも考えると顧客全部の数クエリを作るのは
かなり難しいです。
テーブルに保存しておいて、クエリから適宜フォームか何かの値を拾って
呼び出せれば良いのですが、うまくいきません。
御指南を何卒お願い致します。
>>76 顧客ID 商品番号
600 1234
600 2345
600 2234
800 2234
800 2345
800 5432
というテーブルを作って、この2つのフィールドで
リンクテーブルと内部結合してからグループ化する。
78 :
68 :2005/07/14(木) 22:17:35
>>77 ありがとうございます。
明日また、グリグリいじくってみます。
今まで、AccessてVBA中心にアプリっぽく情報管理ツールとして
使っていたので、クエリだけでこんなに色々出来るとは思いませんでした・・・。
79 :
名無しさん@そうだ選挙にいこう :2005/07/15(金) 13:47:15
おいDBもどきで満足してるウンコ製造機ども、今日もウンコの話してるのか 次スレタイトル:ウンコACCESS相談所 14うんこ目 な
>>79 遊んで欲しいの?
だったら何か芸しろよ w
>>79 でもな、Accessは奥が深いぞ。値段のわりには。
オレもコイツは嫌いだ。お手軽になんでもできると思ってる上司・客が
うざったい。それも後少しの辛抱だ。うんうん。
>>81 > それも後少しの辛抱だ。うんうん。
何で?
定年でつか?
強く生きろ
85 :
隠れ桐したん :2005/07/15(金) 17:32:41
>>52 >>57 こりゃ桐をバカにするなw
桐ではこういう場合月別のテーブルなど作らない。
明細のテーブルは1つで月別のデータがほしければ絞り込む。
>>53 のやり方を桐でやってる人間は見たことが無いな
というかこんなやり方でどうやって売上IDにユニークな連番を
確実に入力出来ているのかという方が気になるな。
86 :
81 :2005/07/15(金) 17:33:40
>>83 残念。長年の鬱憤が一挙に吹き出して、社長に退職願を叩きつけました。
リストラしなきゃいけないほど、うちの会社は社員抱えてないから。
残る技術者は、あと1人。
>>85 >>44 と
>>53 を混同していると見た。
桐はLAN対応する以前から分散した場所でのデータ作成が容易になっており、併合処理なんて容易に出来る。
え、ここ桐スレじゃなかったの!?
90 :
名無しさん@そうだ選挙にいこう :2005/07/15(金) 20:10:08
今、物流のひと月でExcelだと3万行くらいになるデータがあるのですが、今度それをまとめてデータベースとして管理しようと思っています。 行数が多すぎなのでExcelだと無理なのでAccessでやろうと思っているのですが、どのようなデータベースにすればよいでしょうか? 日付 伝票番号 商品名 個数 金額 状態 1/2 1 A 2 100 受注 1/5 2 B 1 300 受注 1/8 1 A 2 100 出荷待 1/8 3 C 1 200 受注 1/9 1 A 2 100 出荷済 このような感じのデータが毎月あがってきます。 とりあえず使い道は、たとえば「伝票番号 1」で検索するとその履歴が 日付 伝票番号 商品名 個数 金額 状態 1/2 1 A 2 100 受注 1/2 1 A 2 100 出荷待 1/2 1 A 2 100 出荷済 このような状態で検索できるようにしたいです。 Accessの使い方は顧客名簿とかである程度わかるのですが、データベースの設計の仕方がまったくわからないのでどうか教えてください。 よろしくお願いします。
>>90 上がってきたデータをそのままテーブルにして
そこから伝票番号で抽出すればいいんじゃない?
別に状態テーブルを作って受注=1、出荷待ち=2、出荷済み=3とか
時系列順に「状態ID」をつけて抽出したものをそれでソーティングすればよいのでないかしら。
>>90 テーブルの基本設計はそのままで良いと思うよ。
ひと月3万レコードだと数年で無茶なレコード数になるから、
テーブルを年毎に分割管理したほうがベターだな。
ありがとうございます。 そうですね、受注=1、受注待=2とかのテーブル作ってリレーションかければいいんですね。 ところでテーブルの作り方なんですが、毎月Excelでデータがあがってくるのですが、これを月ごとにテーブルとして取り込めばよいのでしょうか? その場合は、ユニオンクエリで各テーブルを縦連結すればよいのですか? それとも追加クエリでテーブルにどんどん新レコードを追加していけばよいのでしょうか? あと、全然関係ないのですが、データベースの作り方の参考になるような本で何かお勧めありますか? Accelの使い方、というよりデータベースの基本的な設計の仕方を学びたいのですが・・・・・ よろしくお願いします。
>>93 こんな単純な問題、教えようがない
小学生じゃねえんだ自分で遣れ、つーか桐にしとけ
95 :
名無しさん@そうだ選挙にいこう :2005/07/15(金) 22:59:29
VBAって変数の宣言時に変数の初期化ができないの?
用語の意味の問題とみた
98 :
名無しさん@そうだ選挙にいこう :2005/07/15(金) 23:20:22
>>96 ヘルプみても、わかりません。
dim X = 3 As Integer
上記のように、できないの?
100 :
名無しさん@そうだ選挙にいこう :2005/07/15(金) 23:45:57
101 :
名無しさん@そうだ選挙にいこう :2005/07/15(金) 23:53:42
スレタイの【桐にしとけ】ってなんで入ってるの? 前スレで何かあったの?
Excelの延長でAccess使おうとしている初心者が大量流入したから、 それだったら無理してAccess使うよりも桐の方が便利だよという理由で 「桐にしとけ」が流行って今に至る。
103 :
名無しさん@そうだ選挙にいこう :2005/07/16(土) 10:03:51
>98 ???? dim X As Integer X = 3 ってこと?
>>90 商品名の方はマスタ化しないのか?
つーか、やっぱりデータベースやりたいなら正規化くらい覚えた方がいいと思うぞ・・
>>90 [伝票番号] [商品No] [個数] [金額] [受注日] [出荷待日] [出荷済日]
つーか、桐にしとけ
106 :
名無しさん@そうだ選挙にいこう :2005/07/16(土) 12:24:15
Access 2002 WindowsXP レポートのテキストで、行間を少し空けて印刷したいので、プロパティの行間のところに 数値を入れてみるのですが、全然幅が変わりません。 他に設定する項目があるのでしょうか? 宜しくお願い申し上げます。
>全然幅が変わりません。 行間と字間を間違えてないか?
108 :
名無しさん@そうだ選挙にいこう :2005/07/16(土) 12:35:27
>>107 あ、そうですね。
間違えておりました。
ありがとうございました。
109 :
101 :2005/07/16(土) 12:37:23
>>102 なるほどね。
確かに桐は表の状態でもいろんな事が出来るけど・・・
ただそれは本来のデータベースの使い方じゃないんだけど・・・
>>111 データそのものが月ごとに入ってくるからしょうがねーんじゃねーの?
∧__∧ ________ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ <丶`Д´>/ ̄/ ̄/ < FUCK YOU ( 二二二つ / と) | ぶち殺すぞ・・イルボン・・・・! | / / / | さもしくて卑怯なやつら汚いやつら邪悪学高疎ましいやつら __ |  ̄| ̄ ̄ | 変態やつら汚いやつら変態無理集団変態たちカアアックトェトェトェ!!!! \  ̄ ̄ ̄ ̄ ̄ ̄ ̄\ | やっぱり我が国が最高だ!!!!ちゅっちゅっとチァックチァックチァック犬韓民国!!!! ||\ \ | この世はウリナラ中心!!!デームパミンジョク!!!!ドドンガドンドン!!! ||\|| ̄ ̄ ̄ ̄ ̄ ̄ ̄|| ̄ || || ̄ ̄ ̄ ̄ ̄ ̄ ̄|| .|| ||
はじめてのAccessスレでも立てて養護施設的に収容するか。 でも回答者が居なそう。解説サイトにリンク貼れば良いだけだしな。
データに日付持ってるんだから月ごとや年ごとにテーブル分ける必要ないじゃん まさか2/1とかってテキストで持ってるんじゃないよね・・・・ そうなら日付に変換してからインポートだな
多分、宗教上の理由から日付にindexつけたくないんだろ。
ふと90のデータ見ていて思ったんだけど、 案外まとめられるデータもあるんじゃないかな。 自分は日々15000件程度、月間にして30万程度のデータを扱う在庫管理DBを作ろうと思っているのだけど 生データのままでは長期間のデータを保存しておくのは無理そうだし、 仮にできても重くなりそうな気配だから日々の商品ごとの数量にまとめてしまうつもり。 上手く取捨選択すれば、データ量を減らせるんじゃない? これがDBの運用法に適っているのかは解らないけど。
>>119 そういうのは、ワープロ・表計算とセット売りで高々数万円のソフトで管理するのは止めとけ
その方が幸せになれると思うよ
桐にしても無茶 w
121 :
119 :2005/07/16(土) 23:49:00
>>120 そうは思うのですけどね…orz
ま、それほど複雑なものは作る気はないし、
もとよりそんな能力なんてありゃしませんよ。
とりあえずどの商品がどの日に何個出て
何個残っているかさえ解ればいい在庫管理DBなので
1日分のデータの集計結果を保存するのであれば
30〜40程度(1日にでる商品数)まで減らせそう。
これならばACCESSでも充分すぎるほど実現可能でしょ?
>>121 Accessは管理が悪いとデータが吹っ飛ぶので要注意。
まだ吹っ飛んだことないんだが、どんな管理してるとそうなるの? クライアント数10以上でバリバリ使ってるとか?
>>123 > まだ吹っ飛んだことないんだが、どんな管理してるとそうなるの?
いきなりPCのコンセント引っこ抜くとか
125 :
名無しさん@そうだ選挙にいこう :2005/07/17(日) 17:54:17
ACCESS2002使ってます。 で、相談なんですが、俺、今ハローワークの職業訓練でデータベース科というのに通ってるんです。 そこで、卒業制作でデータベースを作成することになってるんですが、 課題は自由。製作日数は6日です。 製作日数の最後の日にプレゼンテーションソフトを使って発表です。 自由課題で何をやったら良いのかさっぱりわかりません。 誰か、簡単なデータベースの課題を教えてくれませんか?
>>125 お前はそこで何を勉強してきたんだよwwwwwwwwwwwwwwwwwwwwwwwwww
127 :
125 :2005/07/17(日) 18:25:04
>>126 ACCESSの使い方そのものは勉強したんだけど。
テーブルの構築から紙の上でやるようなことはじめるのってやんなかったんだよね。
自由課題で日数が限られてるから結構大変なんだよ。
なにをやったらいいかわからんし、下手な課題を選んで難しくなって終わらなくなったら困るし・・・
当スレACCESS2000総合相談所のログ、その1〜その13迄を データベース化しれ
129 :
125 :2005/07/17(日) 18:36:35
>>128 むちゃいわんでくれ、そんな難しそうなの・・・もっと簡単のない?
家計簿とか・・・
じゃ、家計簿
132 :
125 :2005/07/17(日) 18:52:13
自覚のない豚
135 :
125 :2005/07/17(日) 19:03:44
データベースの規模は出来るだけ小さくするように言われてる。
豚はまだ続ける気なのか。さすが豚。
137 :
名無しさん@そうだ選挙にいこう :2005/07/17(日) 19:16:44
さっさと家計簿に決めて消えろ
138 :
125 :2005/07/17(日) 19:19:44
>>137 なんでそんなにカリカリしてるんですか?
簡単に就職先が決まるDBキボンヌ
>>125 いいか、お前こんな2chなんかに来て時間をつぶしてないで
図書館かどっか行って勉強してろ、あっちの方が涼しいぞ・・・
ほんで、早くどっかいいところに就職決めて、親を安心させてやれ、な
141 :
名無しさん@そうだ選挙にいこう :2005/07/17(日) 19:54:59
複数のフィールをキーとしてリレーションをかけるにはどうすればいいのでしょうか? T_売上履歴 伝票No 商品種類 商品名 金額 001 甲 A 100 002 丙 B 300 003 丙 A 150 T_商品マスター 商品ID 商品種類 商品名 001 甲 A 002 丙 A 003 甲 B 004 丙 B で、売上履歴に商品IDがなくてしかたなく宅商品種類と商品名で1つの主キーを設定しているようなケースです。 商品種類&商品名でリレーションをかけるにはどうするばいいのですか? リレーションは1つのフィールド同士でないとだめなんですか? Q_売上履歴 伝票No 商品ID 金額 001 001 100 002 004 300 003 002 150 のようにしたいんですけど・・・・
144 :
125 :2005/07/17(日) 20:05:50
ダメだこりゃ、さすが2ちゃんねる、相談しても無駄?
>>143 > Q_売上履歴
> 伝票No 商品ID 金額
> 001 001 100
> 002 004 300
> 003 002 150
> のようにしたいんですけど・・・・
T_売上履歴を、そのように作れよ wwwwwwwww
今からでもTable作り変えろ
それが嫌なら、桐にしとけ
桐なら、そのままでも不自由なく柔軟に簡単に運用できるど
>>125 住所検索でも作ったら?
郵便番号からだけだとつまらないから
住所から郵便番号も検索できるようやつ。
データは「ゆうびんホームページ」からDL。
149 :
125 :2005/07/17(日) 20:25:13
>>143 SELECT 腐ったテーブルA.伝票No, 存在意義のないテーブルB.商品ID, 腐ったテーブルA.金額
FROM 腐ったテーブルA LEFT JOIN 存在意義のないテーブルB
ON (腐ったテーブルA.商品名 = 存在意義のないテーブルB.商品名) AND (腐ったテーブルA.商品種類 = 存在意義のないテーブルB.商品種類)
普通にこうやりゃ良いんだろうけどその前に正規化しよう
>>149 いいえ、本当に住所検索だけ。
一般にはあまり需要がないだろうけど、
業種によっては意外と重宝することも。
ただ、課題だったら最低限入れなくてはならない処理
とかがあるんじゃないの?
ま、これなら簡単だと思うのですけどね。
それじゃ簡単すぎるwwwwwwwwwwwwww
153 :
125 :2005/07/17(日) 21:09:01
あんまり簡単だと、プレゼンテーションで発表するネタもなくなりますが・・・ 家計簿レベルでなんかありますかねぇ?
ヒント:分相応
じゃあ、桐にしとけ
>>150 どうもです。
一応そういう感じで書いたはずなんですがエラーはいちゃったんですよねー。
後で確かめてみます。
>正規化
やはりそうしよっかな・・・・
ただ実はすべてのデータが別システムのデータでExcelに落としてからインポートしなくちゃならないんですよねー。
Excekの段階でVBA組んでやるか」・・・・めんどいけど。
桐をDB化すればいいんでね? そうすりゃ就職も楽々。課題の中身を人に決めて貰おうとしている時点で人として終わってるが。
159 :
125 :2005/07/17(日) 21:25:30
桐ってなに?初めてこのスレに北から意味不明。
んだ、やっぱ桐だよ
家計簿DBって簡単なのかなぁ。 実際の家計簿見て、作る気が失せたのだが。
>>161 作っても面倒だって使って貰えない危険性高いしなぁ。
ハローワークの職業訓練、もう一期受けるのが良いよ
>>125 いかに単純なものをさも凄いことをしているかのようにプレゼン。
↓
営業マンへの第一歩だ。
167 :
125 :2005/07/17(日) 22:00:03
なんか人格破綻者みたいなの多いなあ、やけに不親切だし。
>>167 卒業制作の自由課題なら、自分で考えるのが筋だから。
そもそも125さんのスキルがどれくらいなのか知らないけど、
147の説明で「住所録ですか」などと言っている人が
家計簿レベルの作成などまず無理。
そして、プレゼン作成日数を考えればDB作成は
実質4〜5日しかない。
その辺のことを考えているのですか。
素直に家計簿作りなさい そして<<164 以上
や は り 無 職 は 終 わ っ て る な
>>157 それ、別システムにはちゃんと商品IDついてそうだな。
出力時に商品マスタから種類と品名引っ張ってくれてそう。
つーわけで、Accessでデータ流用したいんだったら親切心満載の出力機能使うよりも
ODBC経由で接続するなりして直接別システムのデータに接続した方が良いんだろうね。
システム管理者がok出せばの話だけど。
173 :
125 :2005/07/17(日) 22:43:07
俺、結構まじめに講義受けてたし、内容はほぼ完全に理解したけど。 講義の内容が、もともとDB作成レベルまでいってないんだよな。 ACCESSそのものの操作だけ教えて、後は放置みたいな。
>>172 実際はメインシステムがあり、そのデータを毎月鯖にExcelで落としてあるんです。
で、そのデータを使ってDBをつくろうかな、と・・・・・
メインシステムのほうはあくまでも伝票処理のシステムなんで分析系の機能がないんですよ。
あと3ヶ月以上のデータは保持しないので・・・・・・・
>>174 T_商品マスターにクエリかまして(Q_商品マスター)
商品種類と商品名を結合したフィールド(商品)作って
Q_商品マスターの商品とリレーションしちゃうっていうのはどう。
>>173 だったら求められるレベルも大したことないんだから適当に作れよ。
第一、ハローワークの講義なんてどうでもいいんじゃないの?
課題に力注ぐくらいなら就職活動頑張れよ。
DB作成の基本的なこともしないって…いったい何日の講習だったんだ… ある程度日数あればACCESSの使いかたっていってもDB操作はやってるだろうしその辺りで DBのだいたいの作り方わかるだろうし… 別に正規化とかその辺りならってなけりゃ非正規化でいいだろうて… というかAccess系の本なりHPなりみればそのあたりぐらいのってるだろうに… と元ニートがもうしております
桐ならインポートした表を後からゴニョゴニョして正規化するなど容易なんだが、 なぜ出来ない?
「後から正規化」って糞無意味なんだけどなぁ
>>125 そうやって自分でなにも考えずにすぐに人に頼ろうとするからあんたダメなんでしょう。
他に同じ講習受けた人たちは少なくとも2chなどに頼らずに自分で考えたり本で調べたりして
課題をやろうとしているのに、なんであなたはこんなところで楽に済まそうとしているわけ?
DBの素材を探すのだって課題うのうちでしょう。
アクセス使えるようになったってその程度のことすら自分で考えられないようだと
就職先なんてないよ。
あんたに必要なのは技術や資格じゃなくて自立心とか責任感っていう人格的なもの。
これが理解できずにまだここで油売っているようなら小学校からやり直したほうがいい。
ハロワの職業訓練でデータベースやってるんですが。
http://pc8.2ch.net/test/read.cgi/db/1121665637/ 1 名前:NAME IS NULL[] 投稿日:2005/07/18(月) 14:47:17 ID:3KfBc4vk
ACCESS2002使ってます。
で、相談なんですが、俺、今ハローワークの職業訓練でデータベース科というのに通ってるんです。
そこで、卒業制作でデータベースを作成することになってるんですが、
課題は自由。製作日数は6日です。
製作日数の最後の日にプレゼンテーションソフトを使って発表です。
自由課題で何をやったら良いのかさっぱりわかりません。
誰か、簡単なデータベースの課題を教えてくれませんか?
186 :
名無しさん@そうだ選挙にいこう :2005/07/18(月) 19:33:59
ACCESS総合相談所 その13 【桐にしとけ】 このスレ【桐にしとけ】だ。 間違えるな。
188 :
名無しさん@そうだ選挙にいこう :2005/07/19(火) 15:20:06
>>187 みたいに、秋もせず「桐にしとけ」などと偉そうに言ってるタコ
まあ、おまえのスキルや実績でも披露しろぽ
それがなければ、道端のうんこ
Access で競馬予想アプリ作ったぽ 500万が数年で4600万になったぽ あと10年で17億になる予定ぽ
膨大なデータ入力部分は桐でやってるぽ 桐なら、バコバコ、ドドドーーーット、入力できるぽ
193 :
名無しさん@そうだ選挙にいこう :2005/07/19(火) 16:52:43
>>191 は夏厨
必死だな を言いたかっただけのうんこ製造機
死ね ( ゚д゚)、ペッ
196 :
189 :2005/07/19(火) 18:39:27
売らん!
>>196 お礼にうんこ製造器あげるので売ってください
ウランは売らん
追加クエリで、重複しないデータだけ追加することは可能ですか?
>>199 自分でチェック入れる(プログラムを作る)か、
フィールドを重複不可にすればいいんじゃない?
試してみました 警告が出ますがそのまま強引に実行しちゃえば普通に追加されていました 重複データはグルーピング扱いされている感じなのかな ともかくお騒がせしました
>>203 毎回警告出るとうざくない?
INSERT INTO インポート先 ( A )
SELECT インポート元.A
FROM インポート元 LEFT JOIN インポート先 ON インポート元.A = インポート先.A
WHERE (((インポート先.A ) Is Null))
こんな感じに、重複させたくないフィールド同士を連結させてNullのみ抽出しても、重複データは省ける。
もちろんフィールドのプロパティで重複不可にしておくのも大事だけど。
何故に質問が来る
209 :
名無しさん@そうだ選挙にいこう :2005/07/20(水) 14:03:47
>>208 おまえがキチガイだってことだ
( ゚∀゚)アハハ八八ノヽノヽノヽノ \ / \/ \
>>208 簡単じゃないから質問が来るんだろってこと
211 :
名無しさん@そうだ選挙にいこう :2005/07/20(水) 17:59:08
このスレは、高卒がおおすぎるなw
簡単にできるけどバカには難しいから質問しに来るんだろ
質問者は全て・・ってことっすか?
このスレで質問に答えまくりの俺は リアルに高卒だが年収には不満はない。
オレ、所得番付に出続けているけど、年収に不満ある。 カリホルニア州を買いたい。
218 :
215 :2005/07/20(水) 20:11:05
>>217 桐みたいなニーズのないソフトは起動したことすらない。
219 :
名無しさん@そうだ選挙にいこう :2005/07/20(水) 20:13:14
知名度を上げたいのはわかるが、他スレを荒らすのはヤメレ。
お前らAccessAccessと桐スレを荒らすんじゃねーよ
管理工学研究所の社員だろ。 愛社精神は素晴らしいがやってることは最低だ。
>>225 これだからアクセス使いは頭の出来が悪いw
シャレで済む頻度じゃない。 いいかげんにしてくれ。
MS社員必死だなw
みんな仲良くしろよ
231 :
名無しさん@そうだ選挙にいこう :2005/07/21(木) 03:20:32
Access2002 SP3で作ったmdb(動作確認して問題なし)がAccess2002のランタイムで 動かすとプロシージャエラー多発。こんなことありですか? 漠然として ごめん。。。
>>231 ランタイムはSP当てた?(確かあったような気がしたけど)
あと、ランタイム版動かしたPCの環境は?
233 :
名無しさん@そうだ選挙にいこう :2005/07/21(木) 06:06:11
ランタイムのSP当てました。 環境は、WindowsXP Professional + Access2002 ランタイムです。 VirtualPCにて作っています。 Excelとかは 入っていません。。
>>233 Virtual PCなら環境の保存ができるよね。
動かない環境にAccess2002を入れちゃうと動くわけ?
なんか余計なCOM使ってない?
>>231 どういうエラーが出るか、いくつか公開汁
桐にしとけワロタ
238 :
名無しさん@そうだ選挙にいこう :2005/07/21(木) 13:18:12
>>228 よしこれは復習するべきだ!
桐スレへ嵐に行くんだ!
嵐の決まり事としては文の最後に(藁)を付ける事w
>>239 自ら荒らしてみたが誰も来てなくて反応もないからこっちに報告かよ。
過疎板の過疎スレ荒らしてもなぁ……
>>233 うろ覚えで悪いが、ランタイム版にはコントロール数の制限があったような気がする。
また、ファイルダイアログとかはランタイム不可だったと思う。
その辺はヘルプで確認してくれ。
243 :
名無しさん@そうだ選挙にいこう :2005/07/21(木) 18:49:12
中卒・高卒・専門卒の集まりか ┐(´ー`)┌
高額所得者の集まりだな
>>244 高卒だがどっちかというと高い方だと思う。
サラリーマンの八割は「自分の給料は平均より上」と思っている。
>>246 平均年収は公表されてるんだからすぐにわかるはずだろ。
アクセス2000です クラスの名簿に対して、チェックボックスで欠席した人にチェックすると 欠席者だけ名前が赤くなってほしいんですが、全員赤くなってしまいます。 Private Sub チェク_AfterUpdate() If チェク = yes Then Me![なまえ].ForeColor = 255 Else Me![なまえ].ForeColor = 0 End If End Sub こんな感じで作ってみたのですが どこを手直しすればよろしいでしょうか
250 :
249 :2005/07/21(木) 23:25:11
Me![なまえ].ForeColor は赤くなるから全員赤くなる 素直に条件付書式を使えよ
>>248 帳票形式ですから、全行変わってしまいます。
条件付き書式を使いましょう。フォームデザインでメニューバー
を探してみそ。
252 :
248 :2005/07/22(金) 01:37:18
>>249-251 おかげさまで できました
ありがとございます
おまいらの やさしさは わすれない
253 :
名無しさん@そうだ選挙にいこう :2005/07/22(金) 13:33:26
ここの会話は、社会板の高卒スレと同レベルだな てことは、低学歴・低所得ってことか ご愁傷様
Access のデータを PocetPC で使いたいんですが、お勧めのソフトはありますか? 出来れば同期可能なのが良いのですが、自分で調べても日本語が通らないのが多いようで
256 :
名無しさん@そうだ選挙にいこう :2005/07/22(金) 22:31:25
AppleWorksのデータをAcceessで使いたいのですが、 変換ソフトって無いんですかねぇ・・・
桐にしとけ
【OS】WindowsXP Pro 【Ver.】ACCESS2002 フィールドAでグループ化(昇順) フィールドBでグループ化(昇順) としているレポートがあります。 ここで、フィールドBでグループ化されたところをCountで集計して その集計結果を元にさらにソートすることは可能でしょうか。 可能でしたら、その方法をご教示ください。
>>260 何が言いたいのか激しく分かりづらい。
レポートのレコードソースになってるクエリのORDERを消して
SELECTにフィールドBのcount追加して
それをORDERに追加すりゃ良いだけじゃんじゃないのか?
もしくは桐にしとけ。
263 :
260 :2005/07/23(土) 20:57:38
>>261 レポートの「並び替え/グループ化の設定」を使用しているのですが
どこにクエリーができているかわかりません。
レコードソースでは特にソート掛けられている様子はありませんので…
>>264 魂の叫びみたいなレスワラタ。
>>263 その機能を使わず、レポートに使う元ネタなビューを
デザインモードで開いてSQLって書いてあるボタンを押すと、
Accessのデータベースとして素っ気無いインタフェースがお目見えするよ。
UNIONとかサブクエリも使えるようになるので是非弄ってやってください。
SQL解る香具師は質問に来ない 必然的に、→ 桐にしとけ
桐ばっかり使ってるとそんなレスしかできないような頭になっちまうんだな
268 :
189 :2005/07/23(土) 21:48:58
大体のことは自分でぐぐれば分かるしな
>>260 そのクエリをベースに新しいクエリを作って、
ソート順を指定すればいいよ。
>>267 連鎖あぼーんがきかないから、アンカー付けてくれない?
273 :
名無しさん@そうだ選挙にいこう :2005/07/24(日) 15:04:05
ACCESSの無料お試版なぞありますでしょうか?
まともに動くのか??????
自分で確かめれ
桐マンセー
280 :
名無しさん@そうだ選挙にいこう :2005/07/25(月) 09:40:35
ここは高卒の土方がAccessについて知ったかするスレですか
>>280 OpenOffice Base の使用感レポートしてみれ
>>280 DB神!!、OpenOffice Base 試用レポートきぼん
お前ら粘着バカに触るなよ
284 :
名無しさん@そうだ選挙にいこう :2005/07/26(火) 01:01:28
テキスト型フィールドにDocomoの絵文字を入れたら文字化けしてしまいました。 携帯電話で受信したメールをAccessに取り込みたいんです。 もちろん絵文字が文字化けしていない状態で。 なんか良い方法ありませんか?
>>284 絵文字を外字登録するかそういう製品があるなら購入する。
286 :
名無しさん@そうだ選挙にいこう :2005/07/26(火) 02:32:42
ここで、桐にしておけ と 言う
お願いします。 ”ABC”というデータを入力したときに、A、B、Cという形でそれぞれのフィールドに格納するにはどうすればいいでしょう?
VBAで left(txt_1,1) mid(txt_1,2,1) right(txt_1,1) やった後それぞれのフィールドに代入
290 :
284 :2005/07/26(火) 14:27:14
>>285 そういう製品とはどういう製品でしょうか?
>>290 君のやりたいことを実現してくれるような製品が
既にあるかもしれないよ
つーことだろ。
>>293 いやいやそういう意味でなくて、と思ったけどややこしいからやめとく。俺今眠くて頭変だし。元からとか言うなよwwwwwwwwww
296 :
284 :2005/07/26(火) 15:28:26
>>290 PCで文字化けする原因はわかってるよね?
製品としては、絵文字の外字辞書の類になるのではないか。
PC-携帯間で絵文字の送受信ができるとか外字として登録
できるとか、無料のものがぐぐっただけで結構出てきたぞ。
オレは興味がないのでこれ以上調べる気はないので、自分
でググってくれ。
>>292 そうともいう。
297 :
284 :2005/07/26(火) 15:47:22
>>296 なるほど、よくわかりました。
携帯電話の絵文字を外字としてOSに登録するソフトがある、
という風に解釈しました。
外字として登録してあるとAccessにインポートした際、文字化けも起こらない。
ということですね。
ありがとうございました。
早速調べます。
絵文字をDBに入れなきゃいけないなんて大変なお仕事ですね
299 :
284 :2005/07/26(火) 18:07:53
外字登録してみたのですが、無理でした(泣
Accessのテキスト型フィールドにドコモの絵文字を
入力して確定したらやはり化けてしまいます。
なんででしょうか??
既に外字登録されているので確定したらその文字が表示されてもいいと思うのですが。。
>>298 迷惑メールの管理ソフト作りたいんですよ。
メールの送り元管理会社を拾ってくるまでは作ったのですが、
Docomo曰く苦情は絶対に「
[email protected] 」
に転送しないと正式に受け付けてくれないんですよ。
しかも先頭に日時とか入れろというわがまま。
実際担当者に電話してドコモとしてはそういう態度を変えない、とのことです。
ですので機械的に転送メールを作成したいと思ったのですが、絵文字情報を
途中で落してきていることに気づいて悩んでます。
↑これは本題とは逸れてますけどね(汗
>>299 ・絵文字を表示できていない
・文字が化けている
この二つは一見して区別しづらいが大きく意味が異なる。
それをまず確定汁。
携帯でDB作ればいいんでね? 俺頭良い!
302 :
284 :2005/07/27(水) 09:23:48
>>300 レスありがとうございます。
単純にタイプしてエンターキーで確定したら
入力候補で表示されていた絵文字と違って
化けた文字が表示されるので
・絵文字を表示できていない
・文字が化けている
の二択だと上の「絵文字を表示できていない」だと思います。
問題の切り分けをするためWindows付属の外字エディタにて
適当な外字を作成し、テキスト型フィールド内にATOKの
文字パレット(文字を一覧から探してクリックして入力を行うソフト)で入力したのですが、
やはり化けてしまいました。
これで問題が限定できてきました。
なぜ上記の方法でAccessのテキスト型フィールドに外字を入力できないのでしょうか?
>>301 容量的に無理ですよね。
>>302 表示できてないだけなら、そのままスルーすればいい。
絵文字をAccessの画面で携帯と同じように見る必要はないんだろ?
305 :
284 :2005/07/27(水) 10:25:04
>>304 もう最高。
誠におっしゃる通りです。
試しにAccessで化けた状態でコピーして秀丸に貼り付けたら表示されました。
ありがとうございます。
これは余談としてなのですが、Accessのテーブル上で直接絵文字等の外字を見ることは
できないって考えていいんでしょうか?
ご存じでしたら教えてください。
その前によ〜、自分で勝手に外字登録して絵文字を表示したとしても、 それをDocomoに送ってもDocomo側では外字登録してないから絵文字 は化けるぞ。 迷惑メールを携帯からPCへ転送して、それをそのままDocomoに提出 した方が文字コードが変わらないからいいのではないかと思うが。 Accessで表示が化けるのは問題ではないだろう???
>>305 できる。絵文字だろうが漢字だろうが関係ない。Winの外字ファイル・ATOKの
外字ファイル等混在しててAccess側が認識できないのではないか?
308 :
284 :2005/07/27(水) 10:54:47
>>307 了解です。
そもそも、メモ帳では文字化けして、それを
秀丸に貼り付けたら表示されて、というようなことも発生していますので
Accessとは直接関係ないでしょうね。
またの機会に調べることにします。
ありがとうございましたー。
俺もたまに外字が表示されないことあるんだけど、ATOKが影響しているのかしら
310 :
名無しさん@そうだ選挙にいこう :2005/07/28(木) 11:32:00
あーあ、全くAccessユーザーてのは高卒だらけで困るな、短絡的だ
>>310 DB神!!、OpenOffice Base 試用レポートきぼん
312 :
名無しさん@そうだ選挙にいこう :2005/07/28(木) 11:53:39
>>311 おまえがレスするから高卒て馬鹿にされるのがわからんか
馬鹿
学歴出して批判する
>>310 の方が困る奴だと思う。
困った奴を相手にする奴はもっと困った奴だ
高卒で良いじゃん オレ大学なんて行かなきゃ良かったと思ってる 人生無駄にしたよ
>>315 オレは大学行ってサークルとか合コンとかしてみたかった。
高専だから、そんなゆとりなかったわ。
レコードセットをADOで開いたあと閉じる作業がありますが、 レコードセット.close コネクション.close だけだと問題ありますか?
>>317 たかだか二行の記述惜しんで必要ないと思うならそれだけにしとけ。
>>318 別に惜しんでるわけではないんですけど、
他になにか必要ですか?
321 :
糞野郎 :2005/07/28(木) 17:29:41
>>320 よくわかったよ。読んでやるよ。ありがとよ。ファッキン。
感謝なんてしてないぜ
なかなか微笑ましいやりとりだ
>>312 結論
学歴じゃ人を判断できないっしょ。
学歴が高い方が有能な人材である「可能性」は高い。
という俺は中卒&大検止まり
>>316 うんうん。俺も。
サークルなんてなんかピンとこないし、合コンもしたことない。
そういうのってなんかすごい楽しい思い出になると思うしねぇ。
>>320-321 この解説って結局Set obj=Nothingが必要って意味ですよね?
勘違いかな?
必要ないですよね。
>>316 うん。Set obj=Nothing は、必要ないよ。
325 :
316 :2005/07/29(金) 12:06:21
Set obj=Nothing は必要ないな
何故、必要ないか 何故、必要なのか 本質的なこと書ける香具師は居らんのか!
Set v = Nothing をすると「もう使わない」というのを明示でき、期待通りに メモリが解放される。 一発呼んで終わりなら終了時に勝手に解放されるから 別にやらなくても困ることはない。 ただ、ループで呼ばれたりするような部分だとこれが メモリ圧迫を引き起こしてトラブルの素になる。
329 :
323 :2005/07/29(金) 13:19:36
>>324-326 ありがとうございます。
>327
スコープを抜ける時に参照型変数はNothingが代入されるはずだから。
アプリケーションスコープを持つ変数の場合、アプリケーション終了時に
Nothingが代入されるはずですし。
ついでにレコードセットなどの場合、不必要にCloseメソッドを呼ぶ必要はないと思います。
なぜなら、ADODB.RecordsetクラスのClass_Terminateに
If State <> ObjectStateEnum.adStateClosed Then
Call Close
End If
というような記述があるから、と思います。
別件ですが、個人的に一つ疑問なのが、CloseしなくていきなりNothingした場合、きちんとCloseの処理が走るか、ということですね。
どうなんでしょう?
される、と思ってるんですが、いまいち自信がないです。
330 :
323 :2005/07/29(金) 13:21:11
>>328 >ただ、ループで呼ばれたりするような部分だとこれが
>メモリ圧迫を引き起こしてトラブルの素になる。
具体的にどういうコードが問題になるのでしょうか?
>>329 厳密に答えられなくて申し訳ないけど
スコープを抜けるときに「すぐに」「必ず」呼ばれるとは限らないので
明示するように、ということだったような。
Terminate()についても同様。
332 :
323 :2005/07/29(金) 15:02:58
>>331 え、「すぐに」はとにかく必ず呼ばれることは保証されないんですか?
あれ、おかしいなぁ。
どなたかはっきりとした情報お持ちの方いませんか?
>>332 そりゃいつかは解放されるよ。
そのタイミングがカチッとしてないだけ。
334 :
323 :2005/07/29(金) 15:13:30
>>333 なんか屁理屈みたいになってしまいますが、
ってことは解放されることは保証されている訳で、
Set obj=Nothingは必要ないってことですよね?
逆に今すぐに解放したい、という時のみSet obj〜が
必要、というわけですね。
そこまでしてたかだか二行の記述を無くしたいのか。頑張れ。
>>334 常にSetは対で行うクセを付けておいた方が、
最終的には幸せになれると思うよ。
「おまじない」って大事だよな
338 :
323 :2005/07/29(金) 16:06:36
>>335 その二行を今まで何回書いたか、っていうのと
これからも書き続けるのか、って思えばさっさと解決しようと思いまして。
まぁ便乗ですけどね。
>>336-337 クセをつける、おまじないっていうのと、
知識として必要か知っているかどうかって別問題と思うのです。
>>338 書かなくても呼ばれる→必要ない
という解釈まではいいが、
→書かない
については賛成できないというだけ。
自分のアプリなら好きなように書けばいい。
仮にリークしてたって、たいていの場合はそれらしく動くもんだ。
341 :
323 :2005/07/29(金) 17:25:23
>>339 言われますけどこの話と関係ないと思うんですけど。。
>>340 ありがとうございます。
私の説明も悪く、誤解させてしまったようです。
>>書かなくても呼ばれる→必要ない
が私の欲しかった情報だったんです。
>>->書かない
私も業務では書きますのでその辺は大丈夫だと思います。
>>仮にリークしてたって
この件に関してはNothingが呼ばれるはずなのでリークしないはずですね。
えと、便乗なのに長くなりましたが、解決とさせていただきます。
これ以上はスレの以降と離れてしまいますので申し訳ないので。
ありがとうございました。
理屈っぽいな……
>>341 ただし、上にも書いたが生成の頻度によっては
リークと同じ状態になって落ちることはあるぞ。
そういう意味では「不要」というのは言い過ぎかも
しれない。
>>338 の「知識として必要か知っているかどうかって別問題」は
実に正しい。こういうのをないがしろにし、また型も意識しない奴
がとんでもないバグ埋め込むのだ。
345 :
名無しさん@そうだ選挙にいこう :2005/07/30(土) 18:47:45
Access 2002です。 単表形式の非連結フォームに、テーブル[t_個人]の[個人NO](,主キー)[個人名],[住所] を表示させたいのですが、フォームの[個人NO]テキストに番号を入れると,[個人名],[住所]が 出てくるようにしたいのですが、どのようにしたらよいのでしょうか?
>>345 表示だけでいいんだったらADOで接続して代入させればいいじゃん。
個人NOが数値型という前提で↓
Private Sub 個人NO_AfterUpdate()
Dim rs As ADODB.Recordset
Dim cn As ADODB.Connection
Dim strFNM As String
Dim strSEARCH As String
Dim intKNO As Integer
strFNM = "t_個人"
intKNO = Nz(Me.個人NO, 0)
Set rs = New ADODB.Recordset
Set cn = CurrentProject.Connection
rs.Open strFNM, cn, adOpenStatic, adLockReadOnly
strSEARCH = "個人NO=" & intKNO
rs.Find strSEARCH
If rs.EOF Then
MsgBox "見つからなかったぶー"
Else
Me.個人名 = rs!個人名
Me.住所 = rs!住所
End If
rs.Close: Set rs = Nothing
cn.Close: Set cn = Nothing
End Sub
何故ADOを使うの? AccessならDAOで充分だし、処理速度も速いでしょ。
好きにしろよ
350 :
345 :2005/07/31(日) 01:25:36
351 :
名無しさん@そうだ選挙にいこう :2005/07/31(日) 02:00:12
>>347 手段のために目的見失いがちな毎日送ってそうだな
352 :
名無しさん@そうだ選挙にいこう :2005/08/01(月) 01:24:53
>>346 adoとかEdoウンヌン以前に、1件探すのに、なんでfindメソッド
なんぞつかわなならんのだ??
エクセル上がりなのか、本の丸写しなのか??
インデックスが何の役にもたたん。
つまり、話を統合すると、 桐にしとけ
禿同
Accessより桐の方が楽そうではあるが、本家の桐スレッドってずっと止まったままやね。 ユーザー数かなり少なそう。
Accessユーザーは理屈っぽい奴しかいないから桐にした方がいいよ^^
何故、解った?
358 :
名無しさん@そうだ選挙にいこう :2005/08/01(月) 10:12:41
アプリの機能や標準という意味ではアクセスの方が上かもしれないけど、日常業務で ちょっとデータを加工したい、絞り込みや並べ替え、集計をしたいというような場面では、 桐の方が使いやすいです。何十万件、何百万件のデータベースの場合は別ですが。 アクセスは直感的(画面のテーブルをみながら)に操作ができませんが、桐は画面を見ながら 自分で操作した結果が直線的に結びつきます。そういう意味では、エクセルに似ています。
>>358 > 何十万件
桐にしとけ
> 何百万件
Access では無理ぽ
つまり、桐が一番
>>355 元桐スレ住民は全員このスレに移住したから仕方ない。
桐について分からないことがあったら何でも聞いてくれ。
でもAccessと違って分からないことが出てくるとは思えないがw
全員の根拠は?
363 :
名無しさん@そうだ選挙にいこう :2005/08/01(月) 10:41:34
初心者的質問で申し訳ないです。 LANで組んでいるデーターベースで 「排他モードでアクセスしているため・・・・」 ってメッセージが出て使えなくなってしまいました。 先日までは普通に使えていたので理由がわかりません。 アフォな質問かとは思いますが解決策をお願いします。 Access2000 共有モードで起動はしています。
364 :
名無しさん@そうだ選挙にいこう :2005/08/01(月) 11:48:37
大卒→自発的に、ググるなどして疑問解消、糞レスしない 高卒→Access位で、軽い脳が暴発し、くれくれ君になって、糞レス連発 高卒はレスしてはいけない件について
>>364 珍しくまともなこと書いているが、お前の以前の持論だと
Accessは高卒しか使わないんじゃなかったのか?
367 :
名無しさん@そうだ選挙にいこう :2005/08/01(月) 13:01:15
>>366 高卒はAccessを使うがなんせ脳が不自由だから使えないが正解だろ
なるほど。じゃあAccessユーザーは中卒しかいないってことだな。
>>363 > LANで組んでいるデーターベースで
詳しく。
要するに、桐ユーザーはこのスレにいるって話なのか。 それは桐スレが過疎るわけだな。 桐はとりあえず悪くないけど、ユーザー数の少なさは不安だな。
372 :
名無しさん@そうだ選挙にいこう :2005/08/01(月) 16:19:28
>>369 は底辺=高卒の中の大将という[件について
実はユーザーじゃなくてベンダーだろ。
374 :
名無しさん@そうだ選挙にいこう :2005/08/01(月) 20:39:17
>>371 2ちゃんねらとはユーザ層が違うだけでは?
確かに桐ユーザーは学校関係者とか公務員とか土木関係とか多し
>>364 大卒ねぇ。仕事では使えない奴多いぞ。
>>363 誰かが開いてる時に電源断でもしてldbが残っちゃったんじゃないの?
理屈っぽいとかいう前に、Access使いって中身はどうあれ 動けばOKって人が多過ぎ。
動けばOKです
いえ、正しく動かないとOKではないです
俺は、何故か分からないけど不具合出てないでもOKです
それはダメだろ、趣味で使うなら良いが
商売じゃないからそれでOK。不具合起きても社内のことだからすぐ対応できるし。
384 :
名無しさん@そうだ選挙にいこう :2005/08/02(火) 01:20:53
>>378 デタラメな作り方しても、動いてしまうことはメリットでもあるしデメリットでもある。
異常なまで、間口は広く、未だ奥の知れないソフトだ(w
漏れはもう10年以上の付き合いだが、全くDBやVBを知らずに、入門書片手に
何とか動くものができたのはAccessならでは。
今では、WebDBメインで作成してるがAccessがなけりゃ取っ掛かりもつかめな
かっただろう。
ひとつのフィールドに対して"イロハ"という値を入力することによって、 3つのフィールドにそれぞれ"イ"、"ロ"、"ハ"という値を入れるには どうすればいいでしょうか? できれば「フォームのプロパティ」→「テキストボックス」の設定で 行いたいのですが・・・。 初心者の質問ですがどなたかご教授お願いいたします。
>>385 1.自称初心者
2.「ご教授」
3.VBA使え
やっぱ桐はすごいなぁ
いまだにACCESSなんか使ってる人っているの?w
>>363 > 「排他モードでアクセスしている
のは誰よ?
Private Sub txtイロハ_AfterUpdate() If Len(Me.txtイロハ) = 3 Then Me.txtイ = Left(Me.txtイロハ, 1) Me.txtロ = Mid(Me.txtイロハ, 2, 1) Me.txtハ = Right(Me.txtイロハ, 1) Else MsgBox "3文字じゃないので処理しない" End If End Sub こんな処理しか思いつかないんだけど他に良い方法ある?
>>385 本格的DBならフィールドに計算値持とうなんて考えないが
Access は エクセル以上本格的DB未満の中途半端な用途だし
フィールドに計算値持ちたい場合や考えも解らなくはないが、、
エクセル以上本格的DB未満の中途半端な用途は、桐にしとけ
わがままな要望にも簡単に答えてくれる
結論
桐にしとけ
ああ、どっかで見た質問だと思ったら
>>287 がまた帰ってきたのか。桐にしとけ。
また質問しっぱなしの投げっぱなしジャーマンか
397 :
名無しさん@そうだ選挙にいこう :2005/08/02(火) 18:28:16
このスレ、中途半端にしかAccess使えない桐坊と、 教えてクンしかいないな。
俺は桐マスターだけど、Access触ったことすらないよ
Officeはpersonalしか入ってないのよね……
401 :
名無しさん@そうだ選挙にいこう :2005/08/02(火) 20:01:53
>俺は桐マスターだけど、Access触ったことすらないよ 今時、恥ずかしいセリフだ。 「桐」の個所を、Mysqlなりオラクルなりと置換しておけ(w
事実と異なることは書けません
桐、マジで良くないですか? いや、もちろん本格的なRDBMSとしてっていうわけじゃないですけど。 嫌いだけど仕事で仕方なくAccess使って12年ですが、その途中で ちょっと桐からの乗せ替えでシステム開発した時に桐を触りました。
404 :
名無しさん@そうだ選挙にいこう :2005/08/02(火) 23:37:22
>>403 いいかげんAccessスレで桐ネタやめてくれないか?
うざいし。
いまさらそんなネタ出したところで、
死んだ子の年数えるようなもんだぞ。
>>404 桐を使ったことない中卒が何を喚いているんだ。そういうことは一度でも桐を使ってから言ってくれ。
407 :
名無しさん@そうだ選挙にいこう :2005/08/03(水) 00:02:46
>>406 使う気も無いし興味も無い。
ここはAccessスレだ.。
なんでこう、桐使ってる奴は狂ったやつばっかりなんだ?
少なくとも、喪前のような信者しか、使うやつがいないソフト
だというとは間違いないんだが・・・・・
408 :
403 :2005/08/03(水) 00:32:13
>>407 オレは桐を「使ってる」ではなく、「使ったことがある」というだけで
いいものをいいぞと評価しただけ。その程度のことでガタガタわ
めくなや〜。
Accessなんて巨人MSのソフトだから浸透してるだけだろ。
すぐ破損するデータベースファイル、その復旧のためのトランザ
クションもないRDBって・・・本当、仕事じゃなけりゃ使いたくない。
409 :
名無しさん@そうだ選挙にいこう :2005/08/03(水) 00:54:36
基地外は消えてくれ。。。 ここはアクセススレだと逝ってるだろ。 桐の話はヨソでやれ。 相手にしてもらえないからって、ウザ過ぎ。。 ちなみにだが。。。 >すぐ破損するデータベースファイル 低レベルなスキル棚に上げ、作り方がしょぼい 奴ほどこうゆう奴が多い。。 漏れはwebで不特定多数に配布してるが、 壊れた等と言う話は殆ど無い。 それにバックアップするスキルも無いか?? >本当、仕事じゃなけりゃ使いたくない。 なら使うなよ。。だから、狂ってるといってるんだよ
>>409 みなさん、こいつが一番狂ってると思いませんか?
どっちもどっちか・・・。
たぶん、オマエよりオレの方がスキルは上だと思うぞ。
バックアップだけではなく、破損しても完璧に復旧する措置は
取ってあるし。
破損するという話を書き込んだだけで、何の対策も講じていな
いとは一言もいってないし、これだけで他人を低脳と断言する
奴の方がどうかしてる。
同じレベルにおりて返してやるよ。盛り上がるだろ。
> 漏れはwebで不特定多数に配布してるが、
> 壊れた等と言う話は殆ど無い。
随分と簡単なDB構築で済んでるんだな。つうか、Webで不特
定多数を相手にAccess使うなよ。
> なら使うなよ
仕事だからしょうがねぇべ。普段は使ってねぇよ。アホ!!
>>409 は本当にバカだな。スレタイ読め。ここは桐スレだ。
やぱり、ここ桐スレなのかw じゃ、聞いちゃうけど、桐のフォーム上で 右クリックでメニュー出すの禁止にしたいんだけど、どうやるの?
桐は、思ってたより使える。ファイルメーカーとかよりいいかも。 ただ、あの全くセキュリティの意味がない利用者コードとかは何とか ならんもんですかね。
414 :
名無しさん@そうだ選挙にいこう :2005/08/03(水) 08:26:54
宣伝乙
>>412 ヒント:マウス右クリックイベントと仮想キーコード
桐ネタを盛り上げるための宣伝自演乙。 それだけ桐のユーザー離れは深刻だということだ。 よっぽどAccessがうらやましいんだろうな。
羨ましいのでみんな桐使ってね☆
>>415 すまん、右クリックイベントってなくない?
マウス右アップ、マウス右ダウン ではダメかい?
お前ら本当に桐ユーザーなんだなw
俺、スラッシュメニューは仮想キーコードで抑止している
>>420 ダメみたい。スラッシュメニューは確かにキー変換メソッドで抑制できたけど
マウス右クリックはダメだ。
424 :
420 :2005/08/03(水) 10:30:58
スマソ
425 :
423 :2005/08/03(水) 10:34:23
>>424 いやいや、サンクス。諦めて、Mac用のマウスつないどくことにする。右ボタンないから。
427 :
423 :2005/08/03(水) 11:24:21
よく見たら、マウスの右メニュー出さない方法あったよ。 orz マウス右アップ イベントの中で、 &右メニュー=0 ってするだけだった。一応、誰か見るかもしれないので貼っとく。
428 :
名無しさん@そうだ選挙にいこう :2005/08/03(水) 11:54:06
ここは池沼高卒がAccessをスレタイメインにし、実は桐スレと主張する支離滅裂という件について
>>428 だから中卒だって何度言ったら分かるんだこの低脳め
>>428 Accessを餌にした宣伝目的だから放置汁。
相手にしてもらうのも期待しての行動なんだから。
本来の住人は粛々とAccessの話題を扱うべし。
どうせ過疎板だし、どうでもいいんじゃないの?
わしも、そーおもう
サブタイトルを桐として見ちゃえ。
一応、Accessの質問にもちゃんと回答してるしな。
435 :
名無しさん@そうだ選挙にいこう :2005/08/03(水) 23:54:56
まあAccessユーザーも心を大きく持って転校生の桐ユーザー君を受け入れてちょうだいなww そういえば桐の前スレではAccessユーザーの藁君が桐スレを大いに盛り上げてくれたんだけど 今回はそのおもてなしに対するほんの恩返しだと思って貰えば良いよww いつも堅い話ばかりでなくたまにはこんな雰囲気(ふいんき)もいいんじゃないのww
だよねぇ。 Accessスレだからって拘る必要ないじゃん。
おまいら「桐にしとけ」って言いたいだけちゃうんかと思っとったが・・・ ほんとに使ってるとは(大爆笑)
>>437 ちょこっとした作業するには便利なんだよな桐は。
桐とかAccessとかファイルメーカーって、そんな程度のもんじゃないの?
桐がAccessと比べてダメだと思うのは、ランタイムがないことだけだな。これ致命的。
しています。 Access はレコードロックとトランザクションで桐に追いつきましたが、 まだまだ桐の方が使い勝手良いです。 経験上開発期間も1/5で済みます。
>>438 > 桐がAccessと比べてダメだと思うのは、ランタイムがないことだけだな。これ致命的。
プロテクトもアクティベーションもないでそ
実際、VBA使えない位のライトユーザーだと桐の方が幸せにはなれる。
Accessユーザーの大半はソフトを選ぶ自由なんか無い。 どんなに優秀だか知らないが、シェアがない時点で負け犬。
ここは立派な桐スレですね。
VBA使えても、、以下略
今の時点で桐使ってる奴は、シェアとか気にしなくていい奴だってのは確かだよな。 Access使わざるを得ない状況ってのは理解できるけど。選べる自由があるなら桐はおすすめ。 まあ、でもシェアは伸びないだろうな。
ACCESS2005って発売いつですか
>>447 期待するなよ
Accessは枯れたDB、MSも既に真面目に開発していない
450 :
名無しさん@そうだ選挙にいこう :2005/08/04(木) 22:53:15
>>449 つーか、現役メインでAccess97を使用中だ。
機能は十分だし、MysqlとODBCで繋いでのメンテも楽だし、
枯れてる分、余計なことで悩まなくていい。
今でも開発はこれ使って、客先には変換して配布する
パターンだなぁ
>>450 > 今でも開発はこれ使って、客先には変換して配布する
変なの
452 :
名無しさん@そうだ選挙にいこう :2005/08/04(木) 23:08:58
>>451 なんか変か?
Access持ってないユーザにはランタイム付の場合97で配布してるし
慣れてるし、変換すりゃ上位バージョンでも問題ないし。
クラサバでもなけりゃこればっかだなぁ。
>>452 客先にOffice2000とか入っていて問題起きない?
>>450 最近は新規はさすがに少なくなったけど、納入済システムの
メンテや仕様追加は頻繁にある。
たしかにまだまだ十分強力。
レポートなんか使ってると、変換してノーチェックの出荷は
ちょっとリスキーかと思うけど。
455 :
名無しさん@そうだ選挙にいこう :2005/08/05(金) 08:05:43
>>453 ランタイム版で、Access2kが入ってたりすると問題おきることもあるが
常に2k版も用意してるし問題ない。
バージョン変更も、不具合あっても何とでもなるし、している。
>>454 チェックぐらいは当然してるが、なにがトラブルの元になるかぐらい
わかってるし、変換トラブルなんて物は、漏れにとっては無縁だ。
456 :
名無しさん@そうだ選挙にいこう :2005/08/05(金) 08:42:26
ちなみに、クラサバってのも、もはや死語かも知れん。 Php/perl+Mysqlでの開発が多くなってる。 ブラウザでの入力面倒なんで、Ac97でインターフェース作りこみ、 Ieオブジェクト経由でcgi呼び出してPOSTってパターンで作ってる。 で、データ閲覧はIE 喪前らはどうしてる?
>>456 普通にOracle+ASP.NET(C#)
ただ、そんなのは規模や要求や既存環境で全然選択が
違ってくるだろ。
458 :
名無しさん@そうだ選挙にいこう :2005/08/05(金) 11:20:21
>>457 普通にそんな選択ができればいいんだけどね。。
しょぼいユーザしかいないから(涙
Php/perl+Mysqlでやってる時点で察してくれよ(w
人/日 500円くらい?
>>458 要求してくれば何でもやるのがうちのスタンスだから
Php/perlでやってるシステムもあるよ。(DBは失念)
自分が担当してるだけでも
Access97-2003/VB6/VB.NET/C#/VC6/VC.net/eVC/BC++/MSC/Delphi/BCB/Perl
みたいな感じで「仕事を受けたらその場で覚えて書く」みたいな
感じになってる。
(最近はASP.NET+Oracleの集約されつつあるけど)
461 :
名無しさん@そうだ選挙にいこう :2005/08/05(金) 14:38:17
>>460 よくそんなに覚えられるもんだなぁ
こちらのキャパもあるし、固有の不具合もあったり
リクエストがあってもとてもじゃないが、知らない
やつは怖くて受けられない。
>>461 当然全部は覚えきれないから、間があくと基本文法もヘルプ
見ながら。(switch系がいつも分かんなくなる)
全く初めてのものについては、リスクや生産性あがんない分
費用も工数も多めにもらってるよ。
463 :
名無しさん@そうだ選挙にいこう :2005/08/05(金) 15:29:36
>>462 それで応じる客ばっかりならうらやましいな、、
カネナイ・納期ナイ・ワガママ・・・そんな客ばっかりだ
コストパフォーマンス・信頼性も高くするためにいつも苦労する
せめて、慣れたツールでの作成で押し通す。
おかげで最近はOracleなんぞ触ってないなぁ・・・
>>463 > それで応じる客ばっかりならうらやましいな、、
応じる客ばっかりだったり応じない客ばっかりするといいんだが
いろいろいるので、種類がやたら増える。
ただ最近は「うちのサーバー使ったASPならこんなに安いよ」に
乗ってくる客が増えて
>>460 の末行のような状況。
465 :
名無しさん@そうだ選挙にいこう :2005/08/05(金) 16:19:32
そりゃ、自前でWin鯖用意できればいいんだろうけど レンタル鯖は対応してないところも多いしね。 最近良くわからんけどOracleのライセンス形態って安く はなったのかな?
>>465 高い高い。
いい加減スレ違いなので、この辺で。
467 :
名無しさん@そうだ選挙にいこう :2005/08/05(金) 18:53:19
せっかく元桐ユーザーのAccessユーザーがいるので聞いてみたいんだけど 桐のイベントを使って1年掛けて小さなバグ付きの販売管理システム(イベント+テーブル+フォーム+レポート=全部で約100ファイル) を作れる程度の桐ユーザーがAccessに移行する場合どういう所に気を付けるor苦労するのか教えて下さい。 ※出来ればわからないことを聞くにはどのHPが良いのかも教えてもらいたいのですが。
管理工学研究所「桐」【4】
http://pc8.2ch.net/test/read.cgi/bsoft/1100708378/57 57 名前:名無しさん@そうだ選挙にいこう[age] 投稿日:2005/06/12(日) 12:44:44
桐からAccessへ移行時に戸惑う事
#1.桐では表示されているデータを操作する、Accessではデータソースを操作
#2.桐では始めから物理行番号がある、Accessにはない
#3.桐では表示モードと更新モードがある、Accessにはない
#4.Accessのレポートで死亡する、桐のレポートは秀逸
#5.Accessはバグが多い
#6.桐ではデータをグループ化したフォームが簡単に作れる
#7.桐では直前値関数(#1のお陰)があり出納帳等を簡単に作れる、Accessでは状況毎に異なるDAOコードが必要
#8.桐はインタープリタだからマクロが遅い
#9.桐ではフォームの表示倍率を変えられる、デスプレイサイズ毎に開発しなくとも良い
移行が完了する頃にはAccessも慣れて上記は納得していくが、
#3.だけは不満が残る、ドドドーット入力や更新をするとデータ間違えそうで不安
イベントやVBAを屈指しても桐のように安心してドドーット入力更新できるフォームは作れない
>>469 > #3.桐では表示モードと更新モードがある、Accessにはない
> #3.だけは不満が残る、ドドドーット入力や更新をするとデータ間違えそうで不安
> イベントやVBAを屈指しても桐のように安心してドドーット入力更新できるフォームは作れない
意味がわからん。
一度桐使って、バコバコ入力してみてごらん
#3.桐では表示モードと更新モードがある、Accessにはない 俺も意味がわからん。これだけだと編集ロックor更新許可の切り替えで良いじゃんと思えるし。
バコバコドンドン入力するときは、 データの入力作業は前後のレコードが見える表形式が見通しが良くて便利なんだが、 Access だと、数レコード前の誤入力に気づいて訂正とかやると、関係ないセル弄っちゃって、またどれ弄ったか解らなくなったりして、入力データ全部信頼できなくなったり。 VBA で更新可不可を切り替えたり工夫しても、それに要するひと呼吸が、普段桐でバコバコ入力している者にはジレッタクテ耐えられない。 まあ、ゆっくり入力していけば別だが。
セルって何だドラゴンボールか
475 :
467 :2005/08/05(金) 20:03:03
>>469 どうもありがとう
半分ぐらいは知っていましたが想像以上に違いますね。
大抵は克服できそうですが#2と#3と#6はどうやって克服すれば良いんだろう?苦労しそうです。
でもAccessにも桐に比べて良いところが当然あるはずなのでそれを教えて下さい。
予想ではwebとの連携とか、桐の結合表に当たるクエリーに桐よりも強い所が
あると思っているんですが。
476 :
名無しさん@そうだ選挙にいこう :2005/08/05(金) 21:04:21
/ ̄ ̄ ̄ ̄ ̄ ̄\ / \ / ヽ l:::::::::. | |:::::::::: (●) (●) | |::::::::::::::::: \___/ | ヽ:::::::::::::::::::. \/ ノ
478 :
467 :2005/08/05(金) 23:17:17
>>477 現状では無理に移行しなければならない状況ではないんだけど
次の職場にAccessしか無かったらやばいなと思って少しは勉強しておいた方が良いかな〜と思って聞いてみた訳です。
一応桐はそれなりに使えるようになったんで桐を使いつつAccessも使えるようになりたいなんて
どっちつかずでダメですかね?
いいえ、良いことです。
480 :
名無しさん@そうだ選挙にいこう :2005/08/06(土) 06:04:20
:ill||||||||||l: :i||||||||||||||| /''';:|||||||||||||||||l:、 /:i :||||||貞|||||||i `'! / :| :||||||||||||||||||l ノ! | ヽ |||||||||||||||||||| :| ! !;ヽ:||||||||||||||||||||!; | .__| |/|||||||||||||||||||||; |____ | _| .|/||||||||||||||||||||; |_____ .| | |:='ヾ‐イ:||:|l|l|l|l|l|l|ll|||||' |::::::::::::| | | |:::::::: | |;:|||||:l|:l|l|l|:l|:||||| イ=::::::| | ザー …… | |:::::::::/ };|||||||||l|:l|l|l|:l|:|||.ノ:=:::::| | | |:::=!川!;|||||!l|||l|:l|l||||ー'‐'.;:::::::::::| | | |:::::::::!l.|ノ / ./:::::=:::::::| | | |::::::::::::|::: ノ }::::::::=::::::| | |  ̄ ̄~|::: 川リ ̄ ̄ ̄ ̄ | | ̄l ̄ ̄|:::: | ~ ̄ ̄ ̄| ̄| |_|:.::.:.:.:|::::: |:.:.:.:.:.::..:.:.:|_| .:.:.:.:.:.:.:.:.:|;;;:::: .|.:.:.:.:.:.:.:.:.:..:.:.:.: このレスを見た人間は十三日以内に死にます。 ※あなたに訪れる死を回避する方法が一つだけあります。 それはこのコピペを一時間以内に7つ、別のスレに貼り付ける事です ごめんなさい。死にたくないんです。
>>473 できない、つーからなんだろうと思ったが
Accessは重いと言いたいだけか。
まあ今はGUIの時代だからねぇ DOS時代にマウスなど使わずにキーボードのみでビュンビュン入力していた輩の多くが桐使っている 誤入力訂正に一々ボタンクリックして訂正、新規入力時にまたボタンクリックして戻してからとか、確かにダルイ
っ[キーイベント]
新規ユーザー全く増えてないだろ桐は。
だからこのスレでもっと宣伝頑張らないと!!!
>>487 作り込みが甘いんだろpgrと適当なレスしたいところだけど、作り込まないと希望の動き
実装できないってのも問題だよな。やっぱ桐が一番だ。
桐のスクリプトはCOMとか使えるのか?
桐ユーザーはCOMなんて知らない、日本語で書かないと通じない。
>>494 まさか標準でできないとは思わなかったのさ
ビバ桐
498 :
名無しさん@そうだ選挙にいこう :2005/08/06(土) 19:23:26
レポートで、1件に付き3枚づつ印刷するにはどのようにしたら良いのでしょうか? 納品書と納品書控と請求明細書を作りたいのですが。。。
>>498 OpenReport三回繰り返せば? んで印刷回数に応じてタイトルだけ変える。
**は最高だよな
>>498 全く同じのでいいならPrinter.Copies。
504 :
名無しさん@そうだ選挙にいこう :2005/08/07(日) 00:58:50
>>499 >>502 ありがとうございます。
Printer.Copies = 3
でいけました。
Printer.Copies = 3 で表題まで変えられるのか……
mdbファイルを開くときにshiftキーを押しながら起動すると 起動時の設定を回避できますが、 これをコマンドスイッチなどで制御できませんか? 通常は起動時の設定を有効にして、 違うショートカットから起動するとshiftを押さなくても データベースウィンドウを表示してくれるみたいなことをしたいです。
できません
>>508 Shiftキーでの起動を無効にしたいんじゃないんですよ。
基本的にmdbをダブルクリックして起動するとフォームが開いて
データベースウィンドウが非表示だけど、別のショートカットから開くと
shiftを押して起動したような状態にしたいということです。
なんでこれをやりたいかというと、ようするにキーボードマクロに登録して
一発でそれを開けるようにしたいのです。
Alt+Ctrl+←でデータベースウィンドウ表示で起動
Alt+Ctrl+→でデータベースウィンドウ非表示で起動
みたいな・・・。
でも、
>>507 ではっきりと言われてしまったので難しそうですね。
>>508 Shiftキーでの起動を無効にしたいんじゃないんですよ。
基本的にmdbをダブルクリックして起動するとフォームが開いて
データベースウィンドウが非表示だけど、別のショートカットから開くと
shiftを押して起動したような状態にしたいということです。
なんでこれをやりたいかというと、ようするにキーボードマクロに登録して
一発でそれを開けるようにしたいのです。
Alt+Ctrl+←でデータベースウィンドウ表示で起動
Alt+Ctrl+→でデータベースウィンドウ非表示で起動
みたいな・・・。
でも、
>>507 ではっきりと言われてしまったので難しそうですね。
>>508 Shiftキーでの起動を無効にしたいんじゃないんですよ。
基本的にmdbをダブルクリックして起動するとフォームが開いて
データベースウィンドウが非表示だけど、別のショートカットから開くと
shiftを押して起動したような状態にしたいということです。
なんでこれをやりたいかというと、ようするにキーボードマクロに登録して
一発でそれを開けるようにしたいのです。
Alt+Ctrl+←でデータベースウィンドウ表示で起動
Alt+Ctrl+→でデータベースウィンドウ非表示で起動
みたいな・・・。
でも、
>>507 ではっきりと言われてしまったので難しそうですね。
3連投すまぬ。
>>508 Shiftキーでの起動を無効にしたいんじゃないんですよ。
基本的にmdbをダブルクリックして起動するとフォームが開いて
データベースウィンドウが非表示だけど、別のショートカットから開くと
shiftを押して起動したような状態にしたいということです。
なんでこれをやりたいかというと、ようするにキーボードマクロに登録して
一発でそれを開けるようにしたいのです。
Alt+Ctrl+←でデータベースウィンドウ表示で起動
Alt+Ctrl+→でデータベースウィンドウ非表示で起動
みたいな・・・。
でも、
>>507 ではっきりと言われてしまったので難しそうですね。
何がしたいのかサッパリわかんねー。F11自分で押せよ。
515 :
名無しさん@そうだ選挙にいこう :2005/08/09(火) 18:08:49
桐にしとけ
>>506 Startupコマンドラインオプションに /x マクロ名 を使えばできるかも。
test
518 :
名無しさん@そうだ選挙にいこう :2005/08/15(月) 00:16:24
Excel の複数のブックの一括入力用に、Access に Excel の該当するシートから リンクテーブルを作成しました。 そこからフォームを作成すると、時刻(13:30など)の入力してあるフィールドがリストボックスになってしまいます。 テキストボックスにしたいのですが、コントロールの種類の変更では、テキストボックスが選択不可(グレー) になっています。 元のデータ型が問題かと思い、該当するフィールドをExcelのメニューバー 「データ」「区切り位置」から、 データ型の変更を行ってリンクテーブルの作成からやり直しましたが、改善されませんでした。 この場合の問題点はどこなのでしょうか? またこの状態のものをテキストボックスにするには、どのようにしたら良いのでしょうか?
519 :
名無しさん@そうだ選挙にいこう :2005/08/15(月) 00:21:55
テンプレ見落としていました。
【. 目 的 】 Excelのシートからリンクテーブルを作成し、
更にそれを元に作成したフォームの項目を、目的のコントロール(テキストボックス)にしたい
【. 条 件 】 XP ProSP1 Access2000
■試したけどうまくいかなかった処理
【. 概 要 】 該当するフィールドをExcelのメニューバー 「データ」「区切り位置」から、
データ型の変更を行ってリンクテーブルの作成からやり直しましたが、改善されませんでした。
【駄目な理由】 コントロールの種類の変更を選択しても、「テキストボックス」が選択不可になってしまう。
■これだけはやりました
【
>>1 を読んだ】 はい
【Googleで調べた】 はい
【検索キーワードは?】 Access リンクテーブル コントロールの種類の変更
>>519 再現できないので原因は分からないけど、そのリストボックス消して
新しくテキストボックス作ってそれに連結させれば?
>>519 素直にExcelのフォーム機能を使えば?
522 :
名無しさん@そうだ選挙にいこう :2005/08/15(月) 09:55:19
アクセスからvbaでエクセルへエクスポート使用と思うのですが DoCmd.OutputTo acOutputQuery, "クエリ", acFormatXLS, "\\c\d\エクスポートクエリ.xls", False でエクスポートしたのですがファイル形式がエクセルの5.0/95の形式で保存されます。 これを「microsoft office excel ブック」の形式で保存したいのですがどのようにすればいいのでしょうか?
Accessをつかってハイパーリンクでエクセルを開けようとしたのですが、うまく開きません。 通常のエクセルは開くのですが、対象のエクセルはvba記述あり、他エクセルへのリンク有りの状態です この場合はエクセルを開けることが出来ないのでしょうか?それともマシンスペックが足りないのでしょうか? pc:NEC VersaPro VY13M/RF-U CPU 1.3GHz メモリ DDR240MB Soft office 2003Pro
えーと、Excelを開こうとしているんじゃなくて、ブックを開こうとしているわけだよね? レコード毎に異なるブックを開くようにパスを保存しているんだろうか……。 それにしてもshell関数使った方がいいと思うよ。
526 :
名無しさん@そうだ選挙にいこう :2005/08/15(月) 23:38:32
【. 目 的 】許可番号(連番)を自動で取得したい。
【. 条 件 】 窓XP(SP2)、ACCESS2003
■試したけどうまくいかなかった処理
【. 概 要 】 魔法使いの開発工房さんのサンプルを利用した。
【駄目な理由】 なぜか1つのフォームだけ最初の0001番がセットされないのです。
同じサンプルファイルを利用した他のフォームは大丈夫なのに。
■これだけはやりました
【
>>1 を読んだ】 はい
【Googleで調べた】 はい
【検索キーワードは?】VBA・IIF・未入力・Null
以下、コード晒します。
Private Sub 番号採番_Click()
If DCount("許可番号", "T_マスタ") = 0 Then
Me.[許可番号] = "0001"
Else
Me.許可番号 = Format(DMax("許可番号", "T_マスタ") + 1, "0000")
End If
End Sub
許可番号はテキスト型で、他のフォームでは連番を取り入れているものは
どれもこのコードをフィールド名・テーブル名を変えるだけで取れています。
ただこのフォームだけが…
現在ダミーで"0000"を入れてようやく目的が叶ったのですが
納得がいきません。
どうも1行目のIIF構文で失敗しているようで、未入力=0という式が気になるんですが
他のフォームではちゃんと出来ているので気持ち悪いのです。
お分かりの方、どうかお願いします。
俺はお前の「これだけはダメなフォーム」がどんなのか知らない。 正常に動くフォームがどんなのかも知らない。 ついでに魔法使いの開発工房のサンプルがどんなのかも知らない。 再現してみたけど正常に動くし。 >どうも1行目のIIF構文で失敗しているようで、未入力=0という式が気になるんですが 式としては間違ってない。気になるなら自分でdebug.printなりなんなり使って調べれ。
>>523 Transferなんちゃらとかいうの使えばいいんじゃないの?
というか、マクロの「ワークシート変換」をVBA化してみれば
ここで聞く必要がないのでは?
526の見て思ったんだけど、 素直に許可番号を数値にして書式で「0000」だと なにかまずいことあるのかな?
530 :
526 :2005/08/16(火) 06:38:44
>527 レスサンクスです。 自分も他のフォームは全部ちゃんと動くので気持ち悪いんですよね。 >式としては間違ってない 少し安心しました。 工房の本のサンプルコードだったんですが誤植が多いと評判らしいので もしかしたら???と疑ってしまって。 でも他のは動くし。 イミディエイトウインドで確認したところ“IFに対するEnd ifがない”たら出ます。 ちゃんとあるのに???とこれも不思議。 ヘルプも読んでみたけど…理解できませんでした。 >529 他のフォームの番号関係はすべてテキスト型だったので。 それでちゃんと動くから不思議なんです。 今後もどうにもならないようならそうしようと思います。
>>530 まぁ、DMax関数の戻り値はVariant型だから
不思議ではないね。
>【検索キーワードは?】VBA・IIF・未入力・Null _, ._ ( ´ _ゝ`)
>>530 > イミディエイトウインドで確認したところ“IFに対するEnd ifがない”
何か調べ方からしてずれてるよ。
例えば、DCount の第1引数を"*"とかにしてみたら。他がうまくい
く理由とか知らないけど、DCountで特定のフィールド名を指定した
らどういう処理するかとかちゃんと認識してる?
>>533 コピペしかできないのにしてるわけないじゃなーい
仕事場で調べながら作成しているので返事が遅くなってしまいました。すいませんですm(_ _)m
>>523 さんTransferSpreadsheetを使って無事エクスポートできました♪ありがとうございます
>>525 さんshell関数を使用して開くことに成功しました^^マクロも含んでいたのでなかなか分からなかったのですがなんとかうまくいきました。
そこでまたまた質問で申し訳ありませんが、shell関数で任意のブックは開くことが出来たのですが、任意のシートを開くことが出来るのでしょうか?
ハイパーリンクだとサブで開くことができたのですが、shell関数を使用してのOPENなのでサブアドレスの入れ方が分かりませんでした。
ご教授よろしくお願いします。
>>535 そこまでいくとEXCELの問題だから
Excel総合相談所で聞いたほうがいいんじゃないかな。
おそらく、コマンドラインの引数の問題だろうから。
Access2002を使用しています。 テキスト型のフィールドの、フィールドサイズを自動で取得する方法はありませんか?
>>537 自動は無理だなぁ・・・VBAでプログラム組まなきゃ。
Fieldオブジェクトのプロパティを探せばドンピシャの
があるはずだよ。
>>538 VBA前提での質問だったんですけど、自分では見つけられなくて。
フィールドを追加できるくらいだから既存のフィールドの定義も参照できるはずだとは思ったんですが。
>>539 VBAを理解してる人は537みたいな質問はしない。
ここで教えてもお前さんは理解できないよ
>>537 Dim l_Database As Database
Dim l_TableDef As TableDef
Dim l_Field As Field
Set l_Database = CurrentDb
Set l_TableDef = l_Database.TableDefs("SAMPLETABLE")
Set l_Field = l_TableDef.Fields("SAMPLEFIELD")
MsgBox l_Field.Size
Set l_Field = Nothing
Set l_TableDef = Nothing
l_Database.Close
Set l_Database = Nothing
こういうこと?
>>541 参照設定でDAOの優先順位上げたらアッサリいけましたthx。
>>542 使わないならADOの参照設定は削除しとけ。
優先順位変えなくても、変数宣言時に DAO.Database とすりゃ良いだけじゃん。
カラープリンター使っていますが、レポートで印刷しているときに 右下に出ている印刷中のカラーの残量など出ているダイヤログを 出さないようにしたいのですが、出来ますか??
548 :
名無しさん@そうだ選挙にいこう :2005/08/20(土) 00:56:41
大分1区吉良州司氏に投票しよう!大分1区吉良州司氏に投票しよう! 大分1区吉良州司氏に投票しよう!大分1区吉良州司氏に投票しよう! 大分1区吉良州司氏に投票しよう!大分1区吉良州司氏に投票しよう! 大分1区吉良州司氏に投票しよう!大分1区吉良州司氏に投票しよう! 大分1区吉良州司氏に投票しよう!大分1区吉良州司氏に投票しよう! 大分1区吉良州司氏に投票しよう!大分1区吉良州司氏に投票しよう! 大分1区吉良州司氏に投票しよう!大分1区吉良州司氏に投票しよう! 大分1区吉良州司氏に投票しよう!大分1区吉良州司氏に投票しよう! 大分1区吉良州司氏に投票しよう!大分1区吉良州司氏に投票しよう! 大分1区吉良州司氏に投票しよう!大分1区吉良州司氏に投票しよう! 大分1区吉良州司氏に投票しよう!大分1区吉良州司氏に投票しよう! 大分1区吉良州司氏に投票しよう!大分1区吉良州司氏に投票しよう! 大分1区吉良州司氏に投票しよう!大分1区吉良州司氏に投票しよう! 大分1区吉良州司氏に投票しよう!大分1区吉良州司氏に投票しよう! 大分1区吉良州司氏に投票しよう!大分1区吉良州司氏に投票しよう! 大分1区吉良州司氏に投票しよう!大分1区吉良州司氏に投票しよう! 大分1区吉良州司氏に投票しよう!大分1区吉良州司氏に投票しよう! 大分1区吉良州司氏に投票しよう!大分1区吉良州司氏に投票しよう! 大分1区吉良州司氏に投票しよう!大分1区吉良州司氏に投票しよう! 大分1区吉良州司氏に投票しよう!大分1区吉良州司氏に投票しよう! 大分1区吉良州司氏に投票しよう!大分1区吉良州司氏に投票しよう! 大分1区吉良州司氏に投票しよう!大分1区吉良州司氏に投票しよう! 大分1区吉良州司氏に投票しよう!大分1区吉良州司氏に投票しよう! 大分1区吉良州司氏に投票しよう!大分1区吉良州司氏に投票しよう! 大分1区吉良州司氏に投票しよう!大分1区吉良州司氏に投票しよう! 大分1区吉良州司氏に投票しよう!大分1区吉良州司氏に投票しよう!
Microsoft XML Parser (MSXML) 3.0 Service Pack 7 (SP7) - 日本語
550 :
名無しさん@そうだ選挙にいこう :2005/08/22(月) 21:20:50
お願いです。教えてください。 クエリのビューで、抽出条件を入力するのはわかるのですが、または条件で異なったフィールドにそれぞれ抽出条件を設定する にはどうしたらいいんでしょうか。 例えば、職員番号 氏名 出身学校名 資格 生年月日という5つの項目があって、経済学部を出ている人または簿記一級の資格を 持っている人というような条件を異なったフィールド間で設定し、抽出したいのですが
>>550 OrとAndの併用とか複雑なことしたいんだったらVBAでレコードソース作成すれば?
>>550 職員番号 氏名 出身学部名 資格 生年月日
条件1 経済学部
条件2 簿記1級
まさか 抽出条件|[ ]| | | | | または .| |[ ]| | | | | | |[ ]| | | | | | |[ ]| | | | | | |[ ]| で解決するような単純な要求じゃないよな?
クエリの操作だけか? それともフォーム上に表示したいのか? 前者であれば>553 のような疑問が
フォーム上で表示する方でも
>>553 で良いでしょ。
formsうんたらかんたら必要になるけど。
クエリの操作のみで、と言うのと フォーム上に表示だとレベルが 違ってくると思う。 案外、さわり初めで抽出条件 大文字・小文字・漢字・ひらがな ets・・・・・ なんてことも、
557 :
名無しさん@そうだ選挙にいこう :2005/08/22(月) 23:13:43
>>550 条件は0〜5個の間だと思われまつが,フォームに表示するのであれば,
Select Case と Filter
を使用したら便利だと思いますよ。
ググレば簡単に分かるけどね。
>>550 本人出てきてくれないと
答えようないよ。
もう寝る 進展あるようでしたらまた明日
560 :
名無しさん@そうだ選挙にいこう :2005/08/23(火) 00:56:58
>558 ごめんなさい,解決してしまいました。 本当にどうもありがとう御座います。 みなさん、かなり詳しいですねーー 自分はまだまだです またなにあったら質問させてください。
結局最後まで何したかったのか明かさないんだな。さすがだ。
おまえら馬鹿にされたんだぞw 復讐しろよw リアルめちゃくちゃにしてやれw
>>560 質問をした責任をとって欲しいわな。
それに、別にみんな詳しいっていうほどの情報じゃ
ないぞ。そりゃ詳しい人もいるだろうけど、まだ基本
中の基本で終わってる話しかしてない。
564 :
560 :2005/08/23(火) 12:58:10
>>563 責任ってどうとればいいんでしょうか?
実は私、脱いだらちょっとすごいんですけど(どきどき
565 :
563 :2005/08/23(火) 13:16:05
>>564 おいおい、マジメにいこうや。まずは、他の方のレスあるだろうに。
何がしたかったのか説明が不充分なんだわ。仮にこの説明がで
きないのだとしたら、どうやって解決したのかを説明するべし。
>>564 経過・結果を書いて、皆と情報を共有する
相談所はギブアンドテイク
567 :
560 :2005/08/23(火) 13:32:25
お前ら偽物になんで釣られてるんだ?
いいじゃん。回答は至ってマトモだから、本人が読んでくれてれば もうけもんだし。
自己解決した時でも、どうやって解決に至ったのかを書くのは礼儀だと思うが この程度なら別にいいだろ……。 「クエリってどうやって作るんですか><」レベルだし。
>>569 まさか、抽出条件を複数行使ってのORっていうアホみたい
な事だったのか???
いや、俺に聞かれても分からんよw
572 :
570 :2005/08/23(火) 21:20:02
そうだよね。でも、そのぐらいのレベルだって推測してるでしょ? オレもしてるけど、やっぱ礼儀は大切でしょ、たとえ2chでも。
しかしそれくらいの礼儀も知らない奴は用が済んだらもうこのスレ見ないよw
実は、検索フォーム作ってるのかな? と思って出来るだけVB書かないやつ メモ欄で下準備してた、、、(ーー;)
560が女性だと思ってないか? やたら親切でキモイ
それって能力か?
要するに、桐にしとけってことだな
>>577 「思考能力」が下半身直結なんであって、「下半身直結な思考」が能力なわけじゃない。
>>579 前半は意味不明だぞ
後半は分かってるってw
576は日本語としておかしくないか?
フォーム上で編集しているデータをコマンドボタンでVBAで修正しようとしています。 ADOを使い複数のローカルテーブルを開いて更新などをして保存します。 で、途中でエラーがあったときにすべて破棄するためにトランザクションを使おうとしました。 ところが、保存して画面を更新しても変更が画面に反映されていません。 で、いろいろ調べたらどうもテーブルにデータを書き込むまでにタイムラグがあり すぐには書き込まれないとのこと・・・。 "コネクション.Open"でコネクションを開かずに直接"CurrentProject.Connection" と書いてやるとちゃんと保存後すぐに反映されますが、これだとトランザクションが使えません。 レジストリをいじれば保存されるまでの時間を変更できるみたいですが、 すべてのパソコンを設定し直すのは現実的ではないのであまりしたくありません。 そこで・・・ 1)コネクションを開いてトランザクションを使い.Update後すぐに反映させることはできませんか? 2)もしくは、コネクションを開かずにトランザクションを使う方法はありませんか?
フォーム開き直せば?
>>583 1)は、普通にできるでしょ。
2)は無理じゃないかな。
なんで、CurrentProject.Connectionを使うと
トランザクションが使えないの?
コードをさらしてごらん。
_,,,,,,............,,,,_ ,. r: :'' "´ ̄  ̄ /,'/'~'ヾF=-、 ,,. :''" /,'/ ヾ;, `ヾ;、 _,,..ィ"_,,,,....... . . ----- -' ,';;'',二) ゙;; ヘヾ〒ヲ _,. -‐ ''''""´,. -‐ ,. -‐ ~ ̄ ̄,,`゙゙゙゙゙゙゙'',, \ ,.r::''"´ _,,..,,.. .... --r----、 _,.-―-、 ! ; ヽ ,:'_;'l三三三三/;、_,;;;;__,,;;;:::_/;;__;__,ノ--- / ,.-‐-ミヽ;, '' | ! ,f!ミi | l" ;'/^;゙i_/,:ミ、;:i|! .! ! ;!|).;:|,! F!「T'''''''''lrー―; r-------;, |;ト r; .`;:キi;:|! ; _ ,,..!.. _-1:i',;;リ' Fーゝ....,,,ヘ,,,_三;:! `二三三 ― ,r-,..二!レ',:、 ,ヘソリ;;!- ,.二' -‐‐ '''"´~ゞー-‐' ヾミ;_`ー- ニ二`!  ̄~~""~´ /:::;;;ヾ:;:ゝヽj:モソ:;リ'  ̄ `゙ '''ー- ニニ二二三..ニ -‐''"`'ー-=ニ -‐' ホンダアコード
587 :
583 :2005/08/25(木) 14:55:01
>>585 「コネクションを開かずに」って表現がわかりにくかったかもしれません。たとえば、
----------------------------------------------------
Dim MySet As New ADODB.Recordset
Dim Conn As New ADODB.Connection
Conn.open CurrentProject.Connection
MySet.open "T_テーブル" , Conn , adOpenKeyset, adLockOptimistic
Conn.BeginTrans
・
・
Myset.Update
Conn.CommitTrans
Myset.close
Conn.close
set MySet=Nothing
set Conn=Nothing
Me.Requery
----------------------------------------------------
っていう風に書くと、トランザクションは使えますが、最後の
「Me.Requery」がタイミング的に早すぎるので画面は更新されません。
(更新されないというか、この時点ではまだテーブルに更新が反映されていない。)
レコードセットを開く時に、
MySet.open "T_テーブル" , CurrentProject.Connection , adOpenKeyset, adLockOptimistic
という風に書いてやると、最後の「Me.Requery」で
画面が更新されます。
この直接書くパターンでトランザクションが使えるか、
もしくは、Updateの後になんらかのコマンドで「すぐにテーブルに反映」
できればいいと思うのですが・・・。
588 :
583 :2005/08/25(木) 14:57:16
>>584 もちろんそういう回避方法が無いわけではないですが、
スマートに解決できないかなと思って質問しました。
たとえば、Me.Requeryの直前で無理矢理0.5秒くらい
時間を作ってテーブルが更新されるまで待つという手もあります。
アクセス2003を使用しているのですが、クエリをエクセルの型でエクスポートするときにすでにあるブックへ 上書きすることができません。エクスポート方法は以下のように行っています。 DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel9, "Q_クエリ", "C:\エクスポートクエリ.xls", True このトランスファー何とかでは上書きできないのでしょうか?よろしくお願いします
590 :
589 :2005/08/25(木) 16:59:35
すいません;w;違うモジュールを読み出していていたようです。上記の問題は解決しました。 ご迷惑おかけしました
CSEでも使っとけ
>>592 ねえ意味解らないよう、もう少し親切に書いてよね
桐にしとけ ODBCでMDBの読み書きできる
【. 目 的 】 accessデータのexcelテンプレートへの差込(エクスポート) エクセルで作成されたビジネス書式がありまして、そこにアクセスのデータ(住所・担当者・数量など)を自動で差し込めるようにしたいと考えています。 wordなら、{margefield}と簡単なif構文でできます。同じようなことがやりたいのですが、方法がわかりせん。 【. 条 件 】 winxp か2000 オフィスは2000と2003があります 【駄目な理由】 ■これだけはやりました 本屋でexcelやaccessの解説本を漁りましたが、殆どありませんでした。 調べるジャンルが違うのでしょうか? vbで一から罫線から何から作っていく方法はでていましたが、かなり手間になりそうなのでちょっとなやんでいます。 よろしくお願いします。
>>597 それは桐しかないだろう、悪いことは言わん Access でやるのは止めておけ
何でAccessのレポート機能使わないんだろう
>597 Access側からExcelを起動して、 AccessのVBA(プロシージャ内)で、ExcelVBAで記述 記述の内容は、指定のExcelファイルのセルを指定して 開いたレコードセット(Accessのテーブル)の値を代入 ただし、この場合はAccess側のテーブルにExcelに入れるための 情報が揃っていることが条件となる。 その情報の中の1つのレコードを指定して、AccessVBAでExcelを起動し、 Excelファイルを開き、ExcelVBAで指定のセルへレコードの各フィールドの 値を代入する記述をする。 これで恐らくできると思う…と言うか、自分はよくAccessでは作り難い印刷 をExcelで作成してAccessからExcelで印刷させるようにしてる。
>599 Accessのレポート機能は結構貧弱だよ 文書を作る機能、書類のようなものを印刷させるならAccessでは難しい と言うことはかなりあると思う だから、役所への提出書類のようなものに値を代入して印刷したいとか 定型書類にAccessの値を代入して印刷させたいとか 既にExcelやWordで作成されてる文書に値を入れ込んで印刷したいとか 結構あると思うけどな…
>>600 あと、レイアウトを客が作りたがるときにも使える手だね。
桐ってなあに?
Accessの達人の方々へ、 表形式フォームで、その時の表示状態の整列順に対して累計を書き込む汎用プロシージャ書いてください。 フォーム名、累計対象フィールド、書込みフィールド、を指定して動かせるものが欲しいです。
>>605 桐にしとけ
此処にはアクセスの達人は居ない
桐なら簡単だよ、アクセスなんて無理に使うな、藁
なんでそんなに桐すすめるのん
611 :
597 :2005/08/29(月) 02:06:49
600=601かな?ありがとうございます。 >だから、役所への提出書類のようなものに値を代入して印刷したいとか 定型書類にAccessの値を代入して印刷させたいとか 既にExcelやWordで作成されてる文書に値を入れ込んで印刷したいとか 結構あると思うけどな… かなり量のあるレコードを扱ってるので、まさしくこのようなことをやりたいと思っているのです。 アクセスからエクセルを起動とか、ちょっと判らないところがあるのですが、実際にそのようなことをしていると聞いて安心しました。 もうちょっと勉強しようと思います。 会社指定のソフトしか使えないからアクセス限定なのですよ。
>611 サイトや最近のAccessの本(AccessVBA)には、Accessから他のアプリ (特にExcel)を使って印刷させるようなオートメーション化についての 記述が結構載ってるよ。 ネット通販の本の開設やAccessのサイトを探してみれば、Access-Excelの 連携については結構出てくるはず。探してみると良いと思う。 自分はVBAについてはAccessしか知らなかったから、AccessVBA内に 記述するExcelVABに戸惑ったけど…それもExcelVBAの本やサイトで やりたいことだけは解決して不自由なくできてるw Access-Excelの連携って使ってみると結構楽だったりするよ。 >611さんも頑張ってみてくれ
しかしAccessVBA内にExcelVBA記述するより ExcelVBA内でDAOやADO参照してMDBから 値引っ張ってくるほうが簡単だった罠。
素直にExcelにエクスポートして印刷しろよ ww
Excelにエクスポートして印刷できる程度のものならいいんだけど… ま、普通、Access使ってる人だとその程度の印刷しか浮かばないよなww 漏れはExcelVBA苦手…Accessに記述する程度が精一杯のヘタレw Accessから出ないとテーブル内の値を加工処理させるから無理だった…
616 :
名無しさん@そうだ選挙にいこう :2005/08/29(月) 11:08:21
年寄りだ。65歳になる。 意地悪なしで教えてくれ。 VBAは出来ない。マクロで客先・請求・在庫管理をやっている。 フォームで電話番号を入れると、客先データ表示の場合。 次のクエリーを作る。 Like "*" & [電話番号をハイフン無しで入力] & "*" で表示されるのだが、該当レコードが無い場合表示されぬが 困るのは、入力した番号が消えること。 消えないようにするには、どうしたらいいかなぁー。 教えて。
617 :
名無しさん@そうだ選挙にいこう :2005/08/29(月) 11:10:27
あ 616です。 今更、桐は出来ない。 もうそんなこと出来るトシではないので。
質問です。現在アクセスとエクセルとを使いアクセスで集計したデータをエクスポートしエクセルで表化しています。 そこで質問なのですが、アクセス側からエクセルを開けてエクセルがSub Auto_openを終了すると アクセス側に戻り値(「終了しましたよ」的なこと)を返すことは可能なのでしょうか? よろしくお願いします
>>618 いくつかありそうだが、Access側でプロセス監視をするのが
最初に浮かんだ方法。
マルチ
622 :
618 :2005/08/29(月) 13:08:25
>>620 さんの意見をヒントに検索したところ、APIでのプロセス監視[OpenProcess]を使用する方法があるみたいです。
なかなか難しそうなのですが引き続き調べて行きます。いいサイトなどありましたらよろしくお願いします><
そのままぐぐって見れば 002.Shell起動したアプリケーションの終了を検知 などというところが見つかったが… 自分でぐぐって見たかい? 本なら「Access 2000 プロが作った! お手本データベース41選」 ってのも参考になるよ(ってか、自分はそれを参考にした)
624 :
618 :2005/08/29(月) 13:40:12
自分でもいろいろ調べたのですが ・WaitForSingleObject ・OpenProcess ・IsWindow がキーワードらしいです。初めて使うの構文なので現在OpenProcessから調べています。。。 しかし、OpenProcessの引数の設定の仕方が載っているサイトがない・・・。実用例が多く、ほとんどが、 OpenProcess(SYNCHRONIZE Or PROCESS_QUERY_INFORMATION, True, xxxx) か OpenProcess(1024 Or 1048576, True, xxxx) しか載ってませんでした。
>>624 Access側からExcelを実行するんだからCreateProccessでいいでしょ。
CreateProccessから返ってくるPROCESS_INFORMATIONの
hProcessをGetExitCodeProcessに渡して
終了ステータスがSTILL_ACTIVEじゃなくなるまでループ。
>624 「002.Shell起動したアプリケーションの終了を検知」 って見てきたか?APIの使い方知ってるか? 少なくとも「002.Shell起動したアプリケーションの終了を検知」を 見てみてそのままプロシージャに書いて実行してみれば分かるん じゃないか? もしかして「002.Shell起動したアプリケーションの終了を検知」を プロシージャに書いてテストする方法が分からんのか? ってか、漏れはAPI使わんでももっと原始的な方法使ってるがね 本に書いてあった方法を自分なりに改変して使っている 方法としては変数をいくつか作って、 1)エラーを使ってExcelがインストールされているか確認 ついでに自分が必要とするExcelファイルが同一フォルダにあるかも確認 2)Excelが起動されているかどうか調べる→ 既に起動していた場合の変数Aに値を代入し、 自分で使用するファイルの 起動終了の確認用変数Bにも値を代入しファイルを開く 起動していなければ自分で使用するファイルを開き変数A=値なし/変数B=値 3)終了時に変数A/BによってExcelの終了操作を変える Excelを終了する場合は、自分が開いたファイルのみを閉じるようにする
627 :
618 :2005/08/29(月) 14:34:24
>>625 ,626
さんありがとうございます。現在624さんの提案しているOpenProccessを使用した方法を試しています。
実例を使ったプロシージャをそのまま引用して使ったのですが失敗しました;w;
おそらく対象としているエクセルにSub AutoOpen()があり、その処理内容がいくつかのブックを立ち上げそのデータを
ソートするプロシージャを組んでいます。そのAuto_Openの中に自分自身を閉じる構文も含まれます。コード晒しますが
これを使用するとうまくいかないのでしょうか?
628 :
618 :2005/08/29(月) 14:35:00
エクセル側VBA Sub Auto_open() Application.ScreenUpdating = False namae = Array("定期クロス", "定積クロス", "年金クロス", "公共料金クロス", "証貸クロス", "合計クロス") For a = 0 To 5 Workbooks.Open Filename:=("C:\" & namae(a) & ".xls") '--------ソート--------------- Windows(namae(a) & ".xls").Activate Columns("A:O").Select Selection.Sort Key1:=Range("C2"), Order1:=xlDescending, Key2:=Range("A2") _ , Order2:=xlAscending, Header:=xlGuess, OrderCustom:=1, MatchCase:= _ False, Orientation:=xlTopToBottom, SortMethod:=xlPinYin, DataOption1:= _ xlSortNormal, DataOption2:=xlSortNormal '--------ソート終了----------- ActiveWorkbook.Save '上書き保存 Application.DisplayAlerts = False 'メッセージを出さない ActiveWorkbook.Close Next a Windows("クロス集計ソート.xls").Activate Application.DisplayAlerts = False 'メッセージを出さない ActiveWorkbook.Close End Sub
629 :
618 :2005/08/29(月) 14:36:48
ちなみにアクセス側からのこのクロス集計ソート.xlsを起動するコードが Private Sub コマンド56_Click() Dim lngProcId As Long Dim lngProcHandle As Long Dim lngProcExitCode As Long '実行可能ファイルを起動 lngProcId = Shell("excel.exe c:\クロス集計ソート.xls", 1) 'プロセスオブジェクトのハンドルを取得 lngProcHandle = OpenProcess(PROCESS_QUERY_INFORMATION, False, lngProcId) If lngProcHandle <> 0 Then '新しいプロセスを作成できた場合 'プロセスが終了するまでのループ Do 'プロセスの終了状態を取得 GetExitCodeProcess lngProcHandle, lngProcExitCode DoEvents Loop While lngProcExitCode = STILL_ACTIVE ExecuteWaitProccess = True Else ExecuteWaitProccess = False End If 'プロセスオブジェクトのハンドルをクローズ CloseHandle lngProcHandle a = Shell("excel.exe c:\実績検討表.xls", 1) End Sub
>>627 > 実例を使ったプロシージャをそのまま引用して使ったのですが失敗しました;w;
失敗内容を詳しく。
あと、GetExitCodeProcessの戻り値も評価した方がいいと思う。
631 :
618 :2005/08/29(月) 14:54:57
実際に上記のコードが記述されたボタンを押すと 1.エクセル立ち上がる 2.クロス集計ソート.xlsが開く 3.Sub Auto_Open()によって自動でプロシージャ動作 4.Book1が開く (注) 5.Book1を終了させる 6.実績検討表.xlsが開く (注) "定期クロス", "定積クロス"などが順次「ファイルオープン→ソート→ファイルクローズ」になるはずが Book1という新規のブックが起動する。 クロス集計ソート.xls を開け、終了すると 実績検討表.xlsが自動で開くのは成功ですが、 クロス集計ソート内のAuto_Open()が正しく実行されなくなりました。 単体では成功しました
…それだけ次々とExcelファイルを開けていくなら Excel側でVBA内でDAOやADO参照してMDBから 値引っ張ってくるほうが簡単なんじゃないか? AccessでExcelに与えるデータを加工する必要があるのか? あるなら別だけど…
それから>628の「エクセル側VBA」ってExcelファイルに記述してあるのかな? もしそうなら、Accessのプロシージャ内で"定期クロス"〜"合計クロス"を 開閉していくように指示したらどうだろうか? もしのエクセル側VBAのSub Auto_Openというのがクロス集計ソート.xlsに 書き込まれているとしたら…もしかすると、クロス集計ソート.xlsの1作業の 区切りがつくとAccess側に命令が戻ってきてしまって続かないのかもしれない …上手く言えないけどな…わかるかな?
634 :
618 :2005/08/29(月) 15:29:23
>>633 そうです。エクセル内にサブプロシージャを書いて、立ち上げるとAouto_Openが動く仕組みです。
633さんが言われたことなんとなくわかります。定期クロスというエクセルを立ち上げてそれを終了することによって
アクセス側で監視しているプロセスがクロス集計ソート.xlsと定期クロス.xlsとが混同してしまったことによるのかもしれません。
実際にGetExitCodeProcessがどのように戻り値を返しているのか調べたかったのですが、ステップインで一行ずつ見ていく
方法ができませんでした。おそらくボタンにプロシージャを記述しているのが原因かと思っていますので、
一旦サブプロシージャに記述してみます
>>632 その方法だとアクセスやVBA、エクセルを一通り使えないと自分がいなくなったときに困るかなと・・・
(正直に言うとエクセルからMDBを直接参照する方法が難しそうなので、エクスポートという形をとりましました(汗)
あと、633さんが言われたようにアクセス内にモジュールを持って”クロス集計ソート.xls”と同じことさせたほうがいいような気がするので
それも視野に入れていじってみます
>>631 Workbooks.Open Filename:=("C:\" & namae(a) & ".xls")
これについて
・指定したxlsが開かれない。
・空のブックが開かれる。
・自動終了しない。
ということ?
ループ通り5回これが起きる?
あと、うまく行かなくなるのは
・プロセス監視をしたら
・ShellでAccessから起動したら
のどっち?
もし後者ならCreateProcessを使うとどう?
636 :
618 :2005/08/29(月) 15:41:33
>>635 そのとおりです。ループは行われません。"クロス集計ソート.xls"が開いた後ループは一度も行われず
新規(空)のブックが開かれ、自動終了は行われません。
ボタン内のプロシージャを標準モジュール内に入れ、デバック(ステップイン)で実行していくと
アクセス内のコードで
lngProcId = Shell("excel.exe c:\クロス集計ソート.xls", 1)
が起動した段階で上記のようになってしまいます。
プロセス監視の段階よりも前の、シェルで起動したエクセルのID自体がおかしいのかもしれません
lngProcId = Shell("excel.exe c:\クロス集計ソート.xls", 1) のidが正しくないのかも・・・
仮にエクセルだけ終了させるコードを記述したエクセルを作って試してみます
637 :
618 :2005/08/29(月) 15:53:13
今ほど仮のエクセルで Sub Auto_open() Application.DisplayAlerts = False Application.Quit End Sub を記述したエクセルをクロス集計ソート.xlsと差し替えで試したところ成功しました。 やはり、エクセル内のAuto_Openで他ファイルをオープンしたことでエラーが発生しているようです
元々テストで分かると思うけれどShell("excel.exe") だと普通にExcelを起動 することになるので、当然「Book1」が起動すると思うけど…Shell関数はあくまで アプリを起動する関数であってファイルをオープンする関数ではないから ファイルを直接オープンしたいのなら、プロセス監視にこだわらない方がいいと 思うけど… "定期クロス"〜"合計クロス"というファイルは全て別ファイルにしなくては ならないものなの?例えば、クロス集計ソート.xlsのシートに収められない? 作業的にはクロス集計ソート.xlsを起動し、そのファイルのシートを操作させた 方が楽だと思うけど…そう言う風にはできないのかな?
>>636 > あと、うまく行かなくなるのは
> ・プロセス監視をしたら
> ・ShellでAccessから起動したら
> のどっち?
> もし後者ならCreateProcessを使うとどう?
これについては?
640 :
618 :2005/08/29(月) 16:13:14
>>638 DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel9, "Q_公共料金クロス", "C:\公共料金クロス.xls", True
上記のコードを使用してエクスポートしているのですが、ブックの中のシートにエクスポートすることができればいいのですが
その方法が無く(分からなく)別々のファイルとしてエクスポートしました。
641 :
618 :2005/08/29(月) 16:22:04
>>636 クリエイトプロセスCreateProcess()での起動方法が明記されたところが無く
引数をどのように入れていいのか分かりません><探していますが英語サイトばっかり出てきます;w;
>>633 アクセス側でファイルの開閉および操作をしようとしたのですが、、、エクセルVBAとアクセスVBAでは違うのですね(汗
たしかエクセルVBAを使うことができるようにした何かがあった気がしますのでそれも探していきたいと思います。
(エクセルの関数をVBAで使うための方法だったような気もしますが・・・)
>>641 じゃあ、それは置いておいて、
プロセス監視がまずいのか?
Shellがまずいのか?
たびたびアクセス規制になって書き込めないな…
またアク禁か…
プロセス監視は使用しないが、こう言う方法もある *****テストプロシージャ記述***** Public tfExcelWasRun As Boolean Public xlsApp As Excel.Application Public ObjApp As Object Public NxlsApp As New Excel.Application Public xlswrkbk As Excel.Workbook Public xlswrksh As Excel.Worksheet public sub test_OpenExcel Dim strFileName As String Dim strExcelTitleL As String 'ファイル名を記述し、記述のファイルをこのMDBと同一フォルダに入れておく strExcelTitleL = "(ファイル名).xls"
'Excelでの印刷処理の開始/Excelの起動 Set ObjApp = Nothing Set NxlsApp = Nothing On Error Resume Next Set ObjApp = GetObject(, "Excel.Application") tfExcelWasRun = (Err.Number = 0) Err.Clear If tfExcelWasRun = False Then '起動していない場合False Set NxlsApp = CreateObject("Excel.Application") If NxlsApp Is Nothing Then MsgBox "Excel2000がインストールされていません。", vbCritical Set xlsApp = Nothing Exit Sub ' End If Else 'Excelが起動している場合True Set NxlsApp = ObjApp End If 'Excelファイルを開く strFileName = CurrentProject.Path & "\" & strExcelTitleL 'このテストの場合は【読み取り】で開く Set xlswrkbk = NxlsApp.Workbooks.Open(FileName:=strFileName, ReadOnly:=True)
>>634 そんなに難しくないよ、DAO参照の場合だとこんな感じ。
Dim dbs As DAO.Database
Dim rst As DAO.Recordset
Dim sql As String
Dim i As Long
Set dbs = OpenDatabase("C:\hoge\db1.mdb")
'テーブル更新
sql = "UPDATE テーブル1 SET 金額=金額+1"
dbs.Execute Sql
'テーブル参照
sql = "SELECT キー1, SUM(金額) AS 合計金額 FROM テーブル1 GROUP BY キー1"
Set rst = dbs.OpenRecordset(sql)
i = 1
Sheets("シート1").Range("A1:B65536").ClearContents
Do Until rst.EOF
Sheets("シート1").Range("A" & i) = rst!キー1
Sheets("シート1").Range("B" & i) = rst!合計金額
rst.MoveNext : i = i + 1
Loop
rst.Close: Set rst = Nothing
dbs.Close: Set dbs = Nothing
参照や更新のSQLはそちらの環境がわからんので適当(汗)
多分"SELECT * FROM Q_公共料金クロス"とかでいけるはず。
過疎スレのはずなのに賑わってますね。お前らリストラされちゃったのかと心配になってきたよ。
649 :
618 :2005/08/29(月) 17:11:18
すいません(汗)通常業務をしていたので返事遅れました。合間合間に作っているので大変です
>>645 を参照に開くかどうか試してみました。
結果はNGでした;w;
まず、strFileNameの変数には対象のパスがしっかり入っていました。
おそらくその前の段階でエクセルが起動していないのが原因と思われます
If tfExcelWasRun = False Then のところでtfExcelWasRunにエクセルが起動していないのにTrueが
返っているのが問題と思われますが・・・どのようにすればよいのか・・・@w@
>>647 構文自体は短くて勉強すればできるかもですねぃ♪ただ、まだ自分はアクセス初めて
半年なのでSQL自体がそこそこしか分かりませんのでそこから勉強しないと駄目っぽいです。
650 :
618 :2005/08/29(月) 17:31:48
本日業務終了のため帰宅します・・・このファイルを持ち帰れないのが残念。ガフッ
>649 アク禁で途中までしかプロシージャが書ききれていなかった… 準備 1)空のmdbを開き、モジュールを開いてMicrosoftExcelを参照 2)適当なExcelファイル(何もデータが入ってなくていい)をtest.xlsとして 新規mdbと同一フォルダに保存する *****記述内容***** Public tfExcelWasRun As Boolean Public xlsApp As Excel.Application Public ObjApp As Object Public NxlsApp As New Excel.Application Public xlswrkbk As Excel.Workbook Public xlswrksh As Excel.Worksheet Public Sub test_OpenExcel() Dim strFileName As String Dim strExcelTitleL As String 'ファイル名を記述し、記述のファイルをこのMDBと同一フォルダに入れておく strExcelTitleL = "test.xls" 'Excelでの印刷処理の開始/Excelの起動 Set ObjApp = Nothing Set NxlsApp = Nothing On Error Resume Next Set ObjApp = GetObject(, "Excel.Application") tfExcelWasRun = (Err.Number = 0) Err.Clear *****続く*****
*****続き***** If tfExcelWasRun = False Then '起動していない場合False Set NxlsApp = CreateObject("Excel.Application") With NxlsApp .Visible = True End With If NxlsApp Is Nothing Then MsgBox "Excel2000がインストールされていません。", vbCritical Set xlsApp = Nothing Exit Sub End If Else 'Excelが起動している場合True Set NxlsApp = ObjApp With NxlsApp .Visible = True End With End If 'Excelファイルを開く strFileName = CurrentProject.Path & "\" & strExcelTitleL Set xlswrkbk = NxlsApp.Workbooks.Open(FileName:=strFileName) *****続く****
*****続く***** 'Excelの終了 On Error Resume Next With NxlsApp .ActiveWorksheet.Close True ' 本ブックをClose ThisWorkbook.Close False .Application.Quit ' 他にブックが開いていなければ、Excelを終了する If Workbooks.Count <= 1 Then NxlsApp.Application.Quit End With Set xlswrkbk = Nothing Set xlswrksh = Nothing Set ObjApp = Nothing Set NxlsApp = Nothing Set xlsApp = Nothing tfExcelWasRun = False End Sub *****以上、記述内容**** 一応、これで既にExcelの他のファイルが開かれていても 指定ファイルを開き指定ファイルのみを閉じることができる… ハズだ…
ついでにファイルのチェックをしてみた *****645-新1の一部を変更***** … 'ファイル名を記述し、記述のファイルをこのMDBと同一フォルダに入れておく strExcelTitleL = "test.xls" '指定ファイルがあるかどうかチェックする If test_Filecheck(strExcelTitleL) = -1 Then MsgBox "MDBのあるフォルダに" & Chr(13) & Chr(10) & _ strExcelTitleL & "がないので開けません。", vbCritical + vbOKOnly, "指定ファイルなし" End End If 'Excelでの印刷処理の開始/Excelの起動 Set ObjApp = Nothing … *****以上、変更内容*****
以下のファンクションをPublic Sub test_OpenExcel()の後ろに 続けて記載しておく *****以下、記載内容***** Public Function test_Filecheck(strExcelTitleL) Dim strFullPath As String test_Filecheck = 0 Set dbsObj = CurrentDb strFullPath = Left(dbsObj.name, Len(dbsObj.name) - Len(CurrentProject.name)) strFullPath = strFullPath & strExcelTitleL If Dir(strFullPath) = "" Then test_Filecheck = -1 End If dbsObj.Close Set dbsObj = Nothing End Function *****以上、記載内容*****
656 :
645 :2005/08/29(月) 19:11:22
…すまん、Public Functionである必要はないな、Privateで充分だ
657 :
618 :2005/08/30(火) 11:25:52
おはようございます。朝は忙しくてほとんど手をつけれませんでした(汗
>>645 さんをヒントにしてみたのですがうまくいきませんでした。自分なりに分解して
エクセル起動→指定ブックを開く
を行ったのですがどうやらマクロが使用できないみたいです。以下が改変した構文になります
Private Sub test()
Dim xlswrkbk As Object
Dim objEXCEL As Object
Set xlswrkbk = Nothing
Set objEXCEL = CreateObject("Excel.Application")
objEXCEL.Visible = True
objEXCEL.UserControl = True
Set xlswrkbk = objEXCEL.Workbooks.Open(FileName:="C:\クロス集計ソート.xls")
End Sub
>うまくいきませんでした。 これはクロス集計ソート.xlsに記述してある自動実行マクロが 実行できないだけ?それともファイル自体が開けないの? 自動実行マクロが実行できないなら、Access側にExcelVBAで 同じ内容を記述して、Access側から実行操作してみれば? 先ずはその方がいいと思うけど? 細かいことにこだわるより、とりあえず全体が動いてやりたい動作が できるように作ってから、細かいところをつついていった方が良いのでは?
645の記述は、あくまでBook1.xlsを開かないように 「クロス集計ソート.xls」単体だけを開き閉じる操作しかしない Excel側のマクロは、クロス集計ソート.xlsを開いた後、 Accessプロシージャ内に記述してAccess側で同様の操作を させるようにすればとりあえずは次へ進むと思うんだけど…?
>657 ちなみに、 645改とtest.xlsを使ってテストしてみた。 test.xlsのVBAでThisWorkbookのWorkbookのOpenに *****ExcelVBAの記述内容***** Private Sub Workbook_Open() MsgBox "Hello!" End Sub *****以上、ExcelVBAの記述内容***** 上記の記述をして、645改を実行しtest.xlsを開かせたら ちゃんと"Hello!"は表示されたけど…
661 :
618 :2005/08/30(火) 13:14:32
返事遅くなりました(汗) 660さんの言われるようにAuto_Open()ではなくThis workbookに記述すればマクロは動きました。 ただ 「Windows( "クロス定期.xls").Activate」 こ構文ですでに開いてあるクロス定期のブックを アクティブにすることができませんでした。 エラーが「インデックスが有効範囲にありません」を返してきました。 はやり658.659さんの言われるようにアクセス側で操作するのがいいようですね。そうなると先ほど書いたブックを開ける 構文+そのブックを降順にソートするモジュールを記載するプロシージャを作るようにすればいいですね。 ただ、アクセス側でエクセルのVBAが使えなかったので使い方を調べてからになりますね。 もしいいサイトあればよろしくお願いします。それではサイト探しいってきます><
>661 Access側からExcelを操作するには、 1)先ずはできるだけAccessの1つのSub内で処理を行うように作ってみる それができてから、簡易にサブルーチン化したり簡易化する 2)AccessからExcelを操作する場合、AccessにExcelの何を操作させようと するか明確に指示する。例えばExcelをアクティブにする、アクティブにする シートを変更する、アクティブにするセルを変更する…など、その辺が微妙に Excelの記述そのものと違えないといけないような気がする 3)Set objEXCEL = CreateObject("Excel.Application")と記述されているならば、 Excelを操作する記述の前後をWith 変数〜End Withで囲むことで With objEXCEL .Worksheets("Sheet2").Select Set xlswrksh = Worksheets("Sheet2").ActiveSheet .Range("b9").Value = txtX … End With とExcelVBAが記述できると思う ※自分はあくまでAccessからExcelを操作するためにExcelVBAを使ったことが ないので、本来の正しい?ExcelVBAは理解していないからそう感じるのか… ココはあくまでAccessスレだからAccessVBAに関しては答えるが、 ExcelVBAに関しては自分でwebで見つけた例題や本の例題をテストするか Excel関連のスレで聞いた方が良いかと思う
お前ら優しいな。俺の疑問にも答えて欲しいけど今は特に思い付かないからいいや。
あひゃ〜なんつー間違い >※自分はあくまでAccessからExcelを操作するためにExcelVBAを使ったことが >ないので ↓ ※自分はあくまでAccessからExcelを操作するために【しか】ExcelVBAを使った ことがないので これが正解です。自分はExcelVBAに関しては1冊の本(しかもExcel97用)と サイトを調べまくって作っただけなんで力になれない 以上、645からでした…
665 :
618 :2005/08/30(火) 17:02:27
・・・うーん、、どうやってもうまくいかない@w@ ボタン二つ付けてソート用エクセル立ち上げと集計用エクセルの立ち上げに逃げようかと思う今日この頃・・・ それか集計用エクセルを立ち上げるのに待ち時間つくるとか・・
AccessからExcel操作するならプロセス関連のAPIつかうより OLEオートメーション使うほうがよっぽど簡単だと思うけど・・・
>665 >ボタン二つ付けてソート用エクセル立ち上げと集計用エクセルの立ち上げに逃げようか それで済むならその方が良いと思うが? 何しろAccessとExcelを連携させたら、以後のメンテは貴殿しかできないと思った方が良い 会社の社員的にAccessできるのがデフォ、あるいはそれとも、今回作れば以後絶対に 修正しなくて大丈夫と言うなら別だが… AccessとExcelのVBAができる奴なんて、普通はそう滅多にいないと思う… 「自分がいなくなるかもしれない」と言う状況が考えられて、且つ以後メンテを続ける必要の ある業務処理プログラムなら、AccessまたはExcelのどちらか(Excelの方が一般的には 突っつき易いと思うが)1本で作った方が良いと思う。 ま、漏れみたいに趣味の域、且つ自分以外誰も使わない、且つ自分が辞めたら使わせない 業務処理プログラムなら別だけどな…
>ま、漏れみたいに趣味の域、且つ自分以外誰も使わない、且つ自分が辞めたら使わせない >業務処理プログラムなら別だけどな… あるあるw
670 :
名無しさん@そうだ選挙にいこう :2005/08/31(水) 09:02:39
うん >且つ自分以外誰も使わない、且つ自分が辞めたら使わせない で 逆に前任者が作ったものを使おうとおもったら。 レポートで、デザインを使えないようにしているのですが、 (クリック出来ない) これを使えるようにするらはどうしたらいいんでしょう。
MDE化してるんじゃないか?だとしたら無理なんじゃないか? >使わせたくない んだから、自分で新規にレポート作ればいいんじゃないか? あ、でも、MDEだとテーブルとクエリーは追加できても他は いじれないか…ま、漏れならそのデータテーブルにリンクできれば、 データだけ参照して自分で処理用mdbを作るがな…
672 :
名無しさん@そうだ選挙にいこう :2005/08/31(水) 10:19:27
>>671 ですから
新規も出来ないのです。
デザイン・新規作成をクリック出来ないようにしている。
だったら、別のMDBを作成してデータテーブルをリンクすれば? できないなら諦めれば? >MDE化してるんじゃないか?だとしたら無理なんじゃないか? >あ、でも、MDEだとテーブルとクエリーは追加できても他は >いじれないか… って書いてあるだろ
674 :
618 :2005/08/31(水) 11:16:24
おはようございます。今日は月末なので朝からバタバタしていてなかなか書き込みできなくてすいませんでした。
このアクセス&エクセルは業績評価なので後任者も使用することになっています。目標や点数、人員や支店なども改変
できるようにしたので今後この様式が変わることは・・・(たぶん)無いと思います(汗
最初アクセスのレポートを利用して表を作ろうとしたのですが、、、かなり大変な上に行や列が増えると業績評価が1枚で終わらない
こともありエクセルにエクスポートしてそのファイルをリンクさせた表を提出、という形にしました。
VBAも単純処理を一括でできるようにするためで、VBAがいじれなくなった場合でも手動でソートなどができるようにしました。
>>642 については
>>633 や
>>638 さんのいわれるようにshell関数に問題があり、起動させたファイルのマクロが違うブックを
開いたり閉じたりすることでハンドルがうまく取れないのが原因かと思います。
以下にアクセス側のソース、エクセル側のソースを載せます
675 :
618 :2005/08/31(水) 11:18:22
これがアクセス側のソースです。これによってクロス集計ソートのエクセルを立ち上げ、その処理が終わると 業績評価のブックを開くようにしています Sub Btn1() anser = MsgBox("実績検討表を開きますか?(Excel)", vbOKCancel, "確認") If anser = 2 Then Exit Sub Dim lngProcId As Long Dim lngProcHandle As Long Dim lngProcExitCode As Long '実行可能ファイルを起動 lngProcId = Shell("excel.exe C:\クロス集計ソート.xls") 'プロセスオブジェクトのハンドルを取得 lngProcHandle = OpenProcess(PROCESS_QUERY_INFORMATION, False, lngProcId) If lngProcHandle <> 0 Then Do 'プロセスの終了状態を取得 GetExitCodeProcess lngProcHandle, lngProcExitCode DoEvents Loop While lngProcExitCode = STILL_ACTIVE ExecuteWaitProccess = True Else ExecuteWaitProccess = False End If 'プロセスオブジェクトのハンドルをクローズ CloseHandle lngProcHandle a = Shell("excel.exe C:\実績検討表.xls", 1) End Sub
676 :
618 :2005/08/31(水) 11:19:17
以下がエクセル側のソースになります Sub workbook_open() Application.ScreenUpdating = False namae = Array("定期クロス", "定積クロス", "年金クロス", "公共料金クロス", "証貸クロス", "合計クロス") For a = 0 To 5 Workbooks.Open Filename:=("\\Ja\d\月次関係\MA評価\data\" & namae(a) & ".xls") '--------ソート--------------- 'Windows(namae(a) & ".xls").Activate Columns("A:O").Select Selection.Sort Key1:=Range("C2"), Order1:=xlDescending, Key2:=Range("A2") _ , Order2:=xlAscending, Header:=xlGuess, OrderCustom:=1, MatchCase:= _ False, Orientation:=xlTopToBottom, SortMethod:=xlPinYin, DataOption1:= _ xlSortNormal, DataOption2:=xlSortNormal '--------ソート終了----------- ActiveWorkbook.Save '上書き保存 Application.DisplayAlerts = False 'メッセージを出さない ActiveWorkbook.Close Next a Windows("クロス集計ソート.xls").Activate Application.DisplayAlerts = False 'メッセージを出さない ActiveWorkbook.Close Application.Quit End Sub
>674 >エクセルにエクスポートしてそのファイルをリンクさせた表を提出 それで済むなら、業績評価を印刷する手順は 1)Accessでデータをエクスポート(csvまたはtxt) 2)ExcelファイルでAccessでエクスポートしたファイルをインポート 3)Excelでデータ処理して印刷 ※2)と3)をExcelのVBAで一括処理させてもオケ の方がメンテナンスもしやすいし、加工処理も変更しやすいし良いと思うけど? 正直、AccessとExcelの連携にしてしまうとどちらも見れる技量を持った後任者が 必要となって難しいと思うけどな…世間的にはExcelVBAの方が誰でもとっかかり 安いと言う点でメンテしやすいと思うが… 正直、わざわざ連携させてまで自動化した方が良いとはますます思えない…
678 :
618 :2005/08/31(水) 11:37:58
ハッΣ(.°□°;)たしかに・・・
>>677 さんの言うように業績評価側でデータをソートすればいいのか!
全然気が付かなかったです_│ ̄│○
679 :
677 :2005/08/31(水) 11:38:29
それから、Excelでどのような処理をさせてるのか分からないけれど、 印刷するのが「業績評価が1枚」と言うことならば、Excelでさせる処理を クエリーなどで処理して、値だけをエクスポートし印刷加工だけをExcelで… と言う方が連携の仕方としては素直だと思うけどな…
>>674 >
>>642 については
>>633 や
>>638 さんのいわれるようにshell関数に問題があり、起動させたファイルのマクロが違うブックを
> 開いたり閉じたりすることでハンドルがうまく取れないのが原因かと思います。
今日どの路線で攻めるのか分からないけど、もしこれから手を付けるなら
ttp://www.kit.co.jp/vbit/QAndA02.htm ここのCreateProcessとShellExecuteExを試してみて欲しい。
まずはプロセス監視はせずに、起動だけしてマクロが動作するかどうかだけを。
(もしShellExecuteExがうまく行くならこちらの方がExcelのパスを
考慮しなくていいのでラクだと思う)
681 :
618 :2005/08/31(水) 13:59:30
>>677 677さんの言うようにクエリで計算、集計並び替えなどして値のみエクスポートしております。
それをエクセル(業績評価)の方でリンクさせて表にしています。表はクエリの最後の行を探して
何も無い行についてはRowプロパティを0にして印刷をかけるようにしています。
問題になったのはクロス集計を行ったクエリを昇順で並びかえができなかったことです。
そこでマクロでの並び替えを考えたのですがうまくいかなかったと、、いうことです@w@。
682 :
677 :2005/08/31(水) 14:12:26
>681 時間があったのでテストしてみた。 1)クロス集計ソート.xlsを開き、そのVBAを実行して"定期クロス", "定積クロス", "年金クロス", "公共料金クロス", "証貸クロス", "合計クロス"を開く ※開くと「OPEN!」と言うメッセージが表示される 2)クロス集計ソート.xlsを閉じ、実績検討表.xlsを開く この2点は なぜプロセス監視にこだわるのか分からないが645改を変更してできた >680提案のShellExecuteでプロセス監視を利用することができた ただ、681のプロシージャ記述内容を見る限り If lngProcHandle <> 0 Then Do 'プロセスの終了状態を取得 GetExitCodeProcess lngProcHandle, lngProcExitCode DoEvents Loop While lngProcExitCode = STILL_ACTIVE ExecuteWaitProccess = True Else ExecuteWaitProccess = False End If ↑これをするなら、別にプロセス監視をする必要はないと思うが…
>クロス集計を行ったクエリを昇順で並びかえができなかった Accessからファイルをオープンした時にできないってこと? それとも今やってるExcel単体での処理でできないってこと? Accessでオープンした時にできないということであれば、 できない技術的な原因があるんだろうから頑張って見ることだと思う
684 :
618 :2005/08/31(水) 14:53:36
で、できました!!??
業績評価のAuto_Open()をWorkbook_Open()に変えるとできました><
>>682 さんに返信しようとしたときにハッと気づいて業績評価の方を直したのですができました♪
>>683 エクセル単体での並び替えはできます。アクセスのクロス集計で行や列は問題なく並び替えできるのですが、
行の並び替えにキーを年間の合計点数でソートしようとするとエラーになりました。
以下がその時のエラーなのですがどのようにしていいかお手上げだったのでエクセル側でソートすることにしました。
ORDER BY 句 (Sum(Q_クロス集計の元データ.定積点数))で集計算数を使用することができません。
お詫び
みなさん長らくの間ご教授してくれてありがとうございました。結局ワークブックから他ブックを開くときにはAuto_Openが使用
できないことが原因のトラブルでした。Workbook_Open()とAuto_Open()の違いがよくわからないのですが、原因はこれみたいでした。
Shell関数とプロセス監視については今後趣味の範囲で調べていこうと思います^^
>>680 さんが詳しいところを紹介してくれているので
参考にします♪
>684 >Workbook_Open()とAuto_Open() 正しいかどうかは分からないが、 Excel内だけでしか使えないルール(Auto_Open)か どうファイルをオープンしようと「ファイルをオープンした時に強制的に行われる 手続き」の違いではないかと【感じる】 Accessでも良く使うイベントでForm_OpenやForm_Loadなどと同じで、トリガーが 実行された場合は手続きにしたがって強制的に実行されるイベントがWorkbook_Open (そのExcelファイルが開かれれば強制的にWorkbook_Openが読み込まれ実行される) なのでは?だから、Auto_Openを実行するようにWorkbook_Openに記述すれば Auto_Openは実行されたのではないかと思う。 ちなみに、618に答えていたのは"まだまだ使える ◆WyUjsIG7BU"さんと俺だけだよw そうそう、やっててどうしても解決できなかったんだが、Shell関数にファイルパスを 変数で入れようとしたがスペースが加わると正常に動かなかった。 例えば"D:\My Documents\"など。だから俺はShellExecuteを使用した。 その辺も気をつけた方がいいことだと思う。 ま、頑張れ。俺も久しぶりに良い勉強になった。
>>685 > スペースが加わると正常に動かなかった
これはダブルクォーテーションで囲んでないからと推測します。自分の場合は、
"がいっぱいで見づらくなるのでシングルクォーテーションの ' で囲みますが。
【目的】ふりがな入力支援機能を使いたい
【条件】WindowsXP SP2 + Access 2003 SP1 + MSDE2000SP4
■試したけどうまくいかなかった処理
【概要】
フォームに「氏名」と「ふりがな」の2つのテキストボックス
コントロール配置し、ふりがなウィザードでふりがな入力支援
機能を設定した。
1.mdb
2.adp(フリガナ入力先がフィールドに連結)
3.adp(フリガナ入力先がフィールドに非連結)
の3パターンでテストしたが、使用したい2のパターンだと
期待する動作とならない
【駄目な理由】
最初に変換を確定したところまでしかフリガナとして反映
されないなどといった動作になってしまう
■これだけはやりました
【
>>1 を読んだ】 はい
【Googleで調べた】 はい
【検索キーワードは?】 Access ふりがな
IMEのテキストサービスを無効にしてみても状況は変わらず
といった感じです。Accessのバグっぽいように思えるんですが、
同じような現象の報告が見当たらないんで対応に困っています。
他の皆さんのところでは、こうした現象は発生しないんでしょ
うか?
すぐバグ扱いするのやめれ 大抵は使い方間違ってるか理解してないだけだ
>>687 使ったことないのでためしてみた。
コントロールウィザードでフリガナ以外はデフォルトのまま。
Win2k + Ac2003 + MSIME = OK
WinXP + Ac2003 + ATOK = NG
超初心の質問ですみません。 FOMのよくわかるシリーズのアクセス2002基礎の101ページなのですが テーブル得意先マスターとテーブル担当者マスターからクエリ得意先マスターを 作成するというテキストなのですが どちらのテーブルにも担当者CDという項目があるのですがクエリを作成する際に 得意先テーブルから持ってくるように指示があります。なぜ担当者テーブルから 持ってきてはいけないのでしょうか?指示に従わないと明らかにクエリ結果が違って くるようなのですが・・・・。アホな質問ですみませんがお願いします。
↓ここでエスパー登場
たぶん、一対∞だから テーブル担当者マスターだと1つだけ テーブル得意先マスターだといくつでもOK
>>692 ありがとうございます。
ということはクエリでは同じ項目が複数テーブルにある場合、
多側のテーブルから持ってくると考えておけばいいのですか?
つーか結合方法によるだろ……。自分がどんな結果求めているかちゃんと考えてからSQL書けよ。
>>693 状況によって違いますが、
重複する値が出る場合は、多側です。
>>695 ご親切にありがとうございました。
もっと勉強してみます。
697 :
名無しさん@そうだ選挙にいこう :2005/09/04(日) 23:48:37
単純なクエリの抽出なのですが・・・。 区フィールド、町フィールドをクエリで作成して そのクエリを元に抽出フォームを作成しました。 そして、クエリの抽出条件に以下の式を入力しました。 Like "*" & [Forms]![F_抽出]![区] & "*" Like "*" & [Forms]![F_抽出]![町] & "*" しかし、大本のデータに [区]フィールド→品川区 [町]フィールド→空白 ・・・と、どちらかが空白の場合、そのレコード を抽出してくれません。 このように、空白フィールドを持つレコードをも 抽出するにはどのようにしたらようですか? 初歩的な質問で申し訳ありませんがよろしくお願いいたします。
>>697 言葉を正しく覚えましょう。
空白→Accessでは、空文字列とNullの両方で空白状態に見えます。
たぶん、デフォでしょうからNullだと思います。
で、[Forms]![F_抽出]![区]や[Forms]![F_抽出]![町]が未入力状態(Null)
の時に、そのNullが該当すればいいと思うのだが、NullはIs Nullで
判断する必要があります。
様々な方法がありますが、今のようなフォームの値を利用したパラメー
タクエリよりも、VBAを利用して抽出条件をセットするのが楽なような気
がします。
自分のスキルに応じてNullの扱いを考えてみてよ。こうしたいって書き
込みがあれば、それに対して知ってる人が更に詳しいRESをくれると
思うが。
700 :
名無しさん@そうだ選挙にいこう :2005/09/05(月) 08:58:16
>>699 どっちに書いたらいいのかわからんかったから両方書いただけ。調子に乗んなクズ。
>>698 ちゃんと答えろアホ
クズにクズがクズと言うな!
703 :
698 :2005/09/05(月) 09:26:42
>>699 書き込んでからマルチってわかったのだよ。
>>700 697本人か?
マルチに言い訳は通らん。初歩の初歩だし、自分で勉強し
ろやぁボケェ!!
お前ら朝からレスはえーな。
Like Nz([Forms]![F_抽出]![区], "*") こうだっけか?
706 :
名無しさん@そうだ選挙にいこう :2005/09/05(月) 18:59:23
>>706 お前すべてにおいてレベルが低いぞ。
人間的にもPCのスキルもすべて。ギャハハw
マジレス回答したい('A`)ウズウズ
商品型番がユニークであることが保証されていて、それぞれ異なる特徴を記述しているテーブルが複数あります。 複数のテーブルで共通のフィールドもありますが、商品型番以外は一致するかどうか保証されません。 【テーブル1】 [商品型番]AA0001 [商品名]デラックス筆箱 [メーカー]○○物産 [サイズ]30×20×10 [重さ]2kg 【テーブル2】 [商品型番]AA0001 [商品名]デラックス筆箱 [メーカー]○○ [倉庫]港町第三 [入数]24 【テーブル3】 [商品型番]AA0001 [商品名]DX筆箱 [メーカー]○○物産 [仕入先]××商事 [連絡先]123-456-7890 これらのテーブルから、商品型番を基準に一覧リストを作りたいのです。 【作りたいリスト】 [商品型番]AA0001 [商品名]デラックス筆箱/DX筆箱 [メーカー]○○物産/○○ [サイズ]30×20×10 [重さ]2kg [倉庫]港町第三 [入数]24 [仕入先]××商事 [連絡先]123-456-7890 共通項目(商品名、メーカー)については、出現する値が全部列挙できると安心ですが、 どれかのテーブルの値で代表するのでも構いません。 クエリの作り方で何とかなる予感はするのですが、どの種類のクエリをどのように作ったらいいのか分からず、途方にくれています。 作業環境は Windows XP & Microsoft Access 2000です。 ご助言頂ければ幸いです。
桐にしとけ 加算併合と結合で簡単にできるぞ
>>712 特化してもいい部分と汎用化したい部分を分けて欲しい。
>>712 まずクエリだけでやろうとするのはよろしくないと思うが。
ユーザー定義関数(重複値を除外するのに使おうかと)を
利用したクエリか素直にVBA。
何でそんな風にテーブル分けるんだよ……
分けたんじゃんなくて、いろんなところからの寄せ集めなんじゃない かな。それを合成して、見易い情報を作成してやろうと。いい方向に 考えすぎかなぁ。
718 :
712 :2005/09/07(水) 07:18:44
>>717 のご推察どおりです。
何種類かのリストを渡されて「型番が同じものでまとめて一覧にする」
というのが要件です。
一覧さえできれば道具はエクセルでもテキストエディタでも何でもいいのですが、
手元には桐がないのです。
1.重複しない型番だけのユニオンクエリを作成 2.必要な項目を入れたワークテーブルを作成して1のデータを追加 3.ワークテーブルを[商品名]isnullを条件にして[商品型番]をキーにテーブルnから項目をひっぱって順番に更新する 4.テーブルの数だけ3を繰り返し という感じでどうでしょう
追加クエリ三回する
>>718 > 一覧さえできれば道具はエクセルでもテキストエディタでも何でもいいのですが、
> 手元には桐がないのです。
とりあえず桐体験版で処理したら?
そのほうが幸せになれるよ、きっと。
うむ、下手にユニオソクエリー使っても不幸になるだけだな。
>>719 の方法が無難な気がするが、いまいちやり方が伝わらんと思うぞ。
手順もちょっと違うし、オレも文章力はあるとはいえない方だが・・・
1. 全てのフィールドを網羅しているワークテーブルを作成する。
2. ユニオンで全てのテーブルを対象にし、重複しない型番を抽出する。
3. 2.を元に追加クエリを作成し、重複しない型番を1.のワークテーブルに
追加する。
4. ワークテーブルに入ってる型番とテーブルNの型番を繋いで各フィー
ルドの更新クエリを作成して実行。ワークテーブルを更新するんだぞ。
5. テーブルの数だけ4.を繰り返す。
っていった感じだ。4.のところで更新する値を工夫。IIfやInStrなどを使用
して、同じ値を / で連結した値にしてしまわないように。
それと、テーブルの数だけ繰り返すといっても、存在するフィールドに違
いもあるので、その数分クエリを作成するかVBAで処理だと思う。
724 :
名無しさん@そうだ選挙にいこう :2005/09/07(水) 11:08:35
教えて下さい。 電話番号を3っに分けました。 市外番号をTEL1 局番号TEL2 番号TEL3 と しました これを印刷する時 TEL1-TEL2-TEL3 のように ハイフンを入れて印刷するには どうしたらいいのか、教えて下さい。 Access2000です。
1. 全てのフィールドを網羅しているワークテーブルを作成する。 2. フィールド型番を重複なしに設定する 3. 追加クエリ三回する
レポート上のテキストボックスのコントロールソースに =[TEL1] & "-" & [TEL2] & "-" & [TEL3] じゃ駄目なの?
727 :
名無しさん@そうだ選挙にいこう :2005/09/07(水) 12:58:17
>>726 ありがとうございました。
724です。
>>725 の方法だと、一番目に追加するテーブルと二番目に追加するテーブルに商品型番があった場合、
二番目のテーブルのデータが入らないな。
ユニオン使えって言っても…ユニオンできる技量があるのかな? ユニオンを使うとすると、漏れたデータがないかどうかきちんと チェックする必要があるし…チェックも大変だと思うが? 漏れなら 1)とりあえずテーブルを分解する 商品テーブル:ID、商品型番、商品名 メーカーテーブル:ID、商品型番、メーカー 仕入先テーブル:ID、商品型番、仕入先、連絡先 倉庫テーブル:ID、商品型番、倉庫、入数 備考テーブル:ID、商品型番、サイズ、重さ 2)各テーブルにテーブル1〜3からデータを追加 例えば商品テーブルへは1番目にテーブル1からテーブル1内で 重複しないデータを追加 2番目にテーブル2から商品テーブルにないデータを追加 3番目にテーブル3から商品テーブルにないデータを追加 ただし、倉庫テーブルについては全データを追加する必要がある 3)一覧のクエリを作成してレポートをつくる レポートの作り方によっては「商品名」「メーカー」などのくくりに 該当データをまとめて印刷することができると思う これを見やすいようにパソコン上で表示したい…となると、う〜ん、好きにして 自分ならこの方法が手間はかかるけど、一番安心かな?
>>730 その方法では、XXX/YYYの/での連結は後でやりなさいって
ことですか?
技量がない奴なら、ユニオンに関係なく加工したデータに信
頼性はないでしょう。730 の方法でやっても同じことっすよ。
自分の方法論がなく、どうすればいいですかって聞く奴って
その程度だし。
>>719 の手順を参考に
1.全項目をフィールドに持つワークテーブルを作成
[商品型番] [商品名] [メーカー] [サイズ] [重さ] [倉庫] [入数] [仕入先] [連絡先]
2.商品型番だけのユニオンクエリを作成
select [商品型番] from [テーブル1]
union select [商品型番] from [テーブル2]
union select [商品型番] from [テーブル3]
3.ユニオンクエリの商品型番を元に、ワークテーブルに対する追加クエリを作成、実行
4.各テーブルだけで持っているフィールド情報を元に、ワークテーブルに対する更新クエリを作成、実行
[サイズ] [重さ]
[倉庫] [入数]
[仕入先] [連絡先] をまとめる。
5.ユニオンクエリの商品型番を基準に、複数テーブルで重なり合う情報を並べる選択クエリを作成。
6.コピーしてテキストエディタにペースト、適当に加工。
7.商品型番を基準に、重なる情報を持つテーブルとしてインポート
[商品型番] [商品名] [メーカー]
8.商品型番を基準に、ワークテーブルに対する更新クエリを作成、実行
……という手順で一覧リストにでっち上げました。
「ユニオンクエリ」というキーワードのおかげで、ヘルプや参考書のどこを見たらいいか分かりました。
ありがとうございました。
>>721 桐体験版は、こんど機会があったら試してみます。
test
何だよ、やればできるじゃん。でも、その場限りでいいならそう説明して 欲しかったなぁ。
SELECT テーブル1.商品型番, テーブル1.商品名, テーブル1.メーカー, テーブル1.サイズ, テーブル2.倉庫, テーブル2.入数, テーブル3.仕入先, テーブル3.連絡先 FROM (テーブル1 LEFT JOIN テーブル2 ON テーブル2.商品型番=テーブル1.商品型番) LEFT JOIN テーブル3 ON テーブル3.商品型番=テーブル1.商品型番 でいけると思ったんだが、単純に考えすぎか?
テーブル1に全てのテーブルのキーがあるならな
738 :
名無しさん@そうだ選挙にいこう :2005/09/08(木) 09:39:33
「Msaccessが原因でMSACCESS.EXEにエラーが発生しました。」って出るんですがどうしたら いいですか?再起動しても治らないのですが。。。教えてください。
740 :
名無しさん@そうだ選挙にいこう :2005/09/08(木) 09:44:24
普通に立ち上げようとするとエラーが出ます。
>>738 素直に再インストール、もしくは、素直に桐にしとけ
>>740 普通とは?mdbのオープンではなくスタートメニューからの起動?
Accessのバージョンは?
743 :
名無しさん@そうだ選挙にいこう :2005/09/08(木) 09:56:38
オープンだとエラーがでて、スタートメニューだと、うんともすんとも言いません。。。 バージョンは2000です。
再インストールしろ
>>743 まずはやっぱりAccess2000の再インストールだな。
746 :
名無しさん@そうだ選挙にいこう :2005/09/08(木) 10:08:58
やっぱりそうですか。。。ありがとうございます。 まずはインストールしてみます。原因は何なんですかね??
747 :
名無しさん@そうだ選挙にいこう :2005/09/08(木) 10:36:49
他のアクセスファイルは開けるのですが一つのファイルだけエラーが出ます。。。
749 :
名無しさん@そうだ選挙にいこう :2005/09/08(木) 10:48:40
すいません。。。
751 :
名無しさん@そうだ選挙にいこう :2005/09/08(木) 11:06:51
どうしたらいいですか?
>他のアクセスファイルは開けるのですが一つのファイルだけエラー それならそのファイルが壊れてるのでは? 作り直せばおっけーでしょ?
753 :
名無しさん@そうだ選挙にいこう :2005/09/08(木) 11:15:59
ファイルが壊れてるなら修復は無理なんでしょうか?
修復したら直る。 ・・・ことがあるよ。
755 :
名無しさん@そうだ選挙にいこう :2005/09/08(木) 11:27:16
修復できないのですがヤリ方が間違ってるんですかね?
>>755 起動時に何かを開く設定になっているなら、
SHIFTを押しながら起動(自動起動を抑制)して
それで修復。
修復してもダメなら、別の新しいmdbを作って
そこに古いmdbから全てのオブジェクトを
インポートしてみる。
それでもダメなら、インポートするオブジェクトを
少しずつ加減しながらどれが悪いのかを調べる。
悪のがフォームやレポートならコードをコピー
しておいて一旦「コード保持=いいえ」にして
コードを削除、その後元に戻す。
これだけやってダメなら、俺なら作り直す。
【. 目 的 】 リンク先のデータmdbが、勝手に読み取り専用にならないようにしたい
【. 条 件 】 OS:Windows2000 Access2002を2000で使用
■試したけどうまくいかなかった処理
【. 概 要 】 ネットワークドライブにデータmdbを置いて、各PCからリンクしているアプリmdbを
運用しています。
データベースエンジンはDAO3.6です。
PC側にもワークテーブルがあるので、DBには Set db = Currentdb
でつないでいます。
フォームは非連結・レコードセットもSnapshotで開いてます・・。
【駄目な理由】 運用しているうちに、アプリmdbの更新処理エラーが起きしまいます。
データmdbを直で開いてみると「読み取り専用です」とメッセージが出ます。
この状態のとき、ldbファイルはできていません。
読み取り専用になってしまったファイルの置き換えもできないし、困っています。
大体、午後になると読み取り専用の状態になってしまいます。
■これだけはやりました
【
>>1 を読んだ】 はい
【Googleで調べた】 はい
【検索キーワードは?】 Access・読み取り専用・共有・OpenDatabase・Currentdb
今までAccessはフロントエンドでの開発だけで、バックにOracle鯖などがあったのですが
今回Accessのみのものを引き継いでやることになって苦戦してます・・。
お客さんは今すぐアップサイジングすることは考えてないみたいです。
なにか打開方法はあるんでしょうか?
「読み取り専用」のを無理矢理閉じるとか、通常に開きなおすなど・・。
どうかご教授ください・・。
762 :
760 :2005/09/09(金) 07:00:23
>>759 ご指摘ありがとうございます。
面白そうなHPなので、また恥をかかないためにもあとで読んでおきます。
まだ実際の環境では試してませんが、試せばいけそうなのを見つけました。
家でやったら大丈夫そうでしたが・・・。
ファイルの属性を元に戻す
Dim fso As Object
Dim ffile As Object
Dim odoc As Access.Application
Set fso = CreateObject("Scripting.FileSystemObject")
Set ffile = fso.GetFile(strPath)
If (ffile.Attributes) > 0 Then
ffile.Attributes = Normal
End If
Set odoc = GetObject(strPath, "Access.Application")
odoc.Application.Visible = True
End Sub
>>758 簡単じゃなさそうな話だけど、
> この状態のとき、ldbファイルはできていません。
> 読み取り専用になってしまったファイルの置き換えもできないし、困っています。
この辺をもう少し詳しく。
>>762 mdbに(OSのファイルシステムの)ReadOnly属性が付いてるってこと?
ますます謎。
まだまだ使えるっていつも詳細希望してスルーされてるな。可哀想。
766 :
名無しさん@そうだ選挙にいこう :2005/09/09(金) 09:21:25
テキストボックスのコントロールソースにユーザー定義関数を入れると、「パラメータの入力」のダイアログが出てテキストボックスにエラーが出てしまいます。 どうすればよいでしょうか? それと、コントロールのプロパティでCtrl+F2を押すと、「ユーティリティ、アドインがないか・・・」のメッセージが出てズームが使えません。これが関係するのでしょうか? 問題のマシンは、ノートのMURAMASA XPproのOffice2003です。 他のデスクトップのマシン(Office2003 OfficeXP)では問題なく動作するのですが。 助けて下さい。
>>765 まじめに詳細が出てくる質問を絞り込んでるだけだから
全く気にならない。
768 :
760 :2005/09/09(金) 11:09:08
会社から書き込むのに抵抗がありましたが、状況が状況なので
勇気を振り絞って書き込むことにします。
>>763 ,
>>764 レスありがとうございます。
家でやったときは状況が正確に再現できないため、
mdbを右クリックしてプロパティで読み取り専用にしてテストしました。
この状態だと
>>762 のコードがちゃんと機能するんですが
会社での状態だとやっぱり機能しません・・・。
状態の詳細ですが
・mdbを開くと同じフォルダにできるはずのldbファイルがない。
・右クリックのプロパティの読み取りのチェックはオフ
・開くと「データベース'hoge'は読み取り専用です。」
とでる。
上記のような感じです。
今もこんな状態になってしまってあたふたしてます。
>>768 フォルダのアクセス権限がReadOnlyになってるんじゃないのか。
なので、ldbがない。会社のローカルマシンでやってるなら、簡単
に見られるし直せるだろう。
サーバーにMDBがあるなら、そのサーバーの管理者に聞かな
きゃ。サーバーを自分で触ってもいいなら別だが。
>>767 っていうかさ、760の時もそうだけど、知っている人なら気が付けよと
思うぐらい単純なことを質問をするよな。
771 :
760 :2005/09/09(金) 11:30:46
>>769 レスありがとうございます。
サーバー側の設定のせいなんですかね。
そんな気もします。
でも、朝来て直でデータmdbを開いたときは、
読み取り専用にはなりませんでした。
この辺が不可解なんですが・・・。
何かヒントはありそうなので、サーバーの管理者に聞いて見ます。
俺の会社に勝手にファイルのアクセス権限いじる奴いて困ってるんだがどうしたらいい? 気付くたびに毎回直してるんだが向こうもしつこく変えてきてどうしようもない。 直接注意すりゃいいんだろうけど、日本語おかしい上に粘着質でキモイから関わりたくないんだよ。
相手も同様に感じている、に一票
>>771 そこまで推測して回答してくれた人がいるんだからさ、明確に「はい。MDBは
サーバーに置いてます。」とか、もっと情報を提供する姿勢ぐらい見せろよ。
まだまだ使える ではないが、細かく質問したくもなるぞ。
アナタがMDBを開く時に誰かが先に開いてるってことはないの?
なんか、釣りのように思えてきた。
776 :
名無しさん@そうだ選挙にいこう :2005/09/10(土) 14:41:18
XPのパソコンでLANを組み、access2000を使っています 共有モードで開くように設定していますが、うまくいきません データの置いてあるパソコンで使用中は、別のパソコンでは開けません データのあるパソコンで不使用の時は、別のパソコンで開こうとすると、セキュリティの警告が出ます FIREWALLを無効にしていても同じです データファイル自体をコピーして、別のパソコンに移動することはできます 何が悪いのでしょうか? よろしくお願いします
↓ここでエスパー登場
ひょっとして、アクセスが1アカウントだと、 うまく動作しないんでしょうか?
1アカウントってどういう意味で使ってるんだ?
ライセンスの意味でした
不正コピーでもちゃんと動きますか、ってゲイツに電話すれば良いと思うよ^^
783 :
776 :2005/09/10(土) 15:51:01
データベースのショートカットをクリックしても開かないのに、 プログラムのファイルー開くだと大丈夫だったりします 新しくショートカットを作ろうとしても作れなかったり データのフォルダーの属性が「読み出しのみ」に変わったりしてました 小学生の作文みたいで恐縮ですが、 よろしくお願いします
784 :
名無しさん@そうだ選挙にいこう :2005/09/10(土) 15:55:33
>>783 Accessの問題ではなく、Winの基本を全く知らないだけ。
Win板にでもいったらどうですか?
787 :
名無しさん@そうだ選挙に行こう :2005/09/11(日) 13:29:39
Access MDE の setup.exe からインストールされたプログラムのインストール時のフォルダはどこかに保存されていますか? レジストリでしょうか? 教えてくださいm(_ _)m
↓だれか かいどく たのむ
意味解るように書いてくれ、無理なら桐にしとけ
そろそろ、まだまだ使えるが「詳しく」レスする頃だな
791 :
787 :2005/09/11(日) 15:43:19
Accessランタイム版のシステムということなのですが、このシステムをインストールする時にsetup.exeを実行します。 その時にインストールフォルダを指定するのですが(デフォルトで良いならそのまま)、ここに指定したインストールフォルダはレジストリ等に格納されるのでしょうか? という旨の質問でした。 判りづらくてすみません。
≫783 直IPを変えて吉
>>791 ランタイム版で動作する開発システムってことだよな?→レジストリに
登録されるよ。
ランタイムそのもののパスもレジストリに登録されるよ。
794 :
787 :2005/09/11(日) 20:28:02
回答ありがとうございますm(_ _)m HKEY_LOCAL_MACHINE\SOFTWARE\Microsoftの下辺りに入るのでしょうか? 実際にインストールできれば良いのですが、できない状況なのでよろしかったら教えて下さい。
795 :
793 :2005/09/12(月) 08:02:43
>>794 どっちかハッキリさせて。開発したシステムなのかランタイム版その
ものなのか。でもって、1つだけ書いておこう。開発したシステムが、
Microsoftのサブにはならない。
796 :
787 :2005/09/13(火) 01:39:01
開発したシステムの格納されるフォルダです。 Microsoft の下ではないのですね。 ありがとうございました。
797 :
795 :2005/09/13(火) 09:54:26
>>796 もう、見に来ないか・・・「実際にインストールできれば良いのです
が、できない状況なので」というのは、セットアップイメージがな
いのか?それとも会社の方針で、個人ではマシンにセットアップ
する権限がないのか?
セットアップイメージ作成時につけた名前(システム名???)で
レジストリ登録される。場所は、見当つくでしょう。
Accessのバージョンによって異なるのかどうかまでは知らない。
オレが知ってるのは、95,97,2000まで。
798 :
787 :2005/09/14(水) 00:59:52
毎晩仕事から帰るのが遅くてこんな時間になってしまいますが見に来ています。 >「実際にインストールできれば良いのですが、できない状況なので」 > というのは、セットアップイメージがないのか?・・・ > いいえ。 まだ前段階の話で、システム自体存在する前なので、実際にインストールできないと書きました。 > セットアップイメージ作成時につけた名前(システム名???)で > レジストリ登録される。場所は、見当つくでしょう。 > 実際にシステムができてからインストールしてみて、regedit でシステム名を検索 してみます。 レジストリのどこの下に登録されるかが事前に分かれば、システムがあがる前に レジストリ検査するコードを書けると思って先の質問に至りました。
799 :
名無しさん@そうだ選挙にいこう :2005/09/14(水) 01:25:39
教えてください。 Access のテーブルを開いて入力しようとすると、 「テキスト型」で定義されてるところにカーソルがくると、必ず漢字モードになってしまいます。 半角にしても、また戻ってくると漢字になります。 常に半角にする事はできないいんでしょうか?
>>799 テンプレ嫁
---------- ここから ----------
【. 目 的 】 (何がしたいのか必ず記入。)
【. 条 件 】 (使用OS、ACCESSのバージョン など)
■試したけどうまくいかなかった処理
【. 概 要 】 (どんな処理を試したかを説明)
【駄目な理由】 (動作状況など)
■これだけはやりました
【
>>1 を読んだ】 はい・いいえ (読まない人が多いので必ず目を通してください)
【Googleで調べた】 はい・いいえ (大概の疑問は検索することで解決します)
【検索キーワードは?】 (全て列挙してください)
---------- ここまで ----------
>>799 は釣りだろ、さすがに。プロパティくらいいじれよ……。
>>799 該当テーブルのデザインビューで該当フィールドの「IME入力モード」を「オフ」に。
>>803 まだまだ使えるが空気読んだことなんて一度もないよ
文盲かよw 釣りなら釣りと(ry
桐にしとけ
Access2000を使ってます。 ExcelをインストールするとAccessでSpreadsheetコントロールが使えますが、 ExcelをインストールしなくてもSpreadsheetコントロールを使う方法はないでしょうか。
809 :
807 :2005/09/15(木) 11:20:56
>>808 まあそりゃSpreadsheetコントロールはExcelのおまけみたいな物なんでしょうから
それをただで使おうっていうのは虫がよすぎるかもしれませんね。
一応Excel自体はどのPCにも入っているのですが、
バージョンが2000、XP、2003とばらばらになっていて困ってしまってます。
なんでAccessのデータシートビューじゃだめなのかといえば、
やはりExcelに慣れたユーザーに同じ感覚で使ってもらうのに
Spreadsheetのほうがいいからなんですよね。
次のAccessでSpreadsheetコントロールを標準で載せてくれないかな・・・。
>>809 > バージョンが2000、XP、2003とばらばらになっていて困ってしまってます。
それぐらいの違いならレイトバインドで通せないか?
やらせる内容にも依るが。
811 :
807 :2005/09/15(木) 12:16:30
>>810 やる内容といってもたいしたことはなくて、
単純にExcelっぽい画面でデータの入力ができればいいんで
特に細かい機能は考えてません。
レイトバインドっていうのを初めて聞いてぐぐってみたりしましたが
参照設定であらかじめチェックを入れておかないで、
コードにcreateobjectなどで書くことで使用するっていう認識であってるでしょうか。
あくまでも実験でですが、「OWC11.DLL」をそれがインストールされていない
PCのmdbと同じところに置いてみたのですが、
画面表示は出来ても書き込みが出来ない様子。
まあできてもライセンス的にはまずいでしょうけどw
まあおとなしくデータシートビューで我慢してもらうのが一番なのかもしれません。
あと、レイトバインドをもう少し調べてみます。
>>812 情報が足りない。
テキストボックスに入力された値を自身のヒントテキストにしたいんだったら、
Private Sub txtHint_AfterUpdate()
If IsNull(txtHint) = False Then
Me.txtHint.ControlTipText = Me.txtHint
End If
End Sub
みたいにすれば良い。
>>812 Private Sub テキスト0_Change()
テキスト0.ControlTipText = テキスト0.Text
End Sub
Private Sub コンボ0_Change()
コンボ0.ControlTipText = コンボ0.Text
End Sub
>>814 Null値回避させないとエラー起こすぞ
>>814 Changeイベントじゃ頻繁でうっとおしいだろう。通常は、
>>813 が正解だろ。ただ、If IsNull(txtHint) = False Then は気持ち
悪いし、Nullへ変更した時は前のデータのままかよって。
もう一つ、最初のデータ表示ではAfterUpdateは動作しない
のでレコード移動時でもセットしないと。
If IsNull(Me!txt) Then
Me.txt.ControlTipText = ""
Else
Me.txt.ControlTipText = Me.txt
End If
でいいかな???
817 :
816 :2005/09/16(金) 00:55:09
「.」と「!」がごっちゃまぜになってしまったが、正しいのか? オレの場合は、Me!txtだな。
またしても質問者逃亡か
煽りじゃない。真面目に聞け、 まだまだ使える。 オマエ、人に親切にしてあげるのはいいことだと思うが、 もう少し勉強しろ。
820 :
812 :2005/09/16(金) 17:34:03
ありがとうございます。
>>812 さん、
>>815 さんを参考にさせていただき、以下のようなものができました。
Public Function SetHintText()
Dim ctlActive As Control
Set ctlActive = Screen.ActiveControl
With ctlActive
If .ControlType = acTextBox Or acComboBox Then
If IsNull(ctlActive) Then
.ControlTipText = ""
Else
.ControlTipText = .Value
End If
End If
End With
End Function
これを、更新後処理として 「=SetHintText()」 とすることで、
値の更新後にヒントテキストを設定することができました。
ここまでやって気づいたのですが、帳票フォームを使用しているため、
ヒントテキストに特定の値を入れてしまうと、どの行も同じ値が表示されてしまいます。
何かいい方法は無いでしょうか、それともあきらめるしかないのでしょうか。
フォーカス取得時にも同じようにやっとけば? ついでにfunctionである意味ないねそれ
823 :
812 :2005/09/16(金) 19:05:30
お世話になってます。
>>821 さん
フォーカス取得時にも設定してみましたが、別のレコードの値を取得するには、
値を取得したいオブジェクトを一度クリックする必要ができてしまい、
思うような動作をしてくれません。
functionである意味ありませんか?
複数のオブジェクトのイベントのプロパティに「=SetHintText()」と入れるだけでいいので、
楽な方法だと思っていました。
>>822 さん
レコード移動時ということは、フォームのプロパティにセットする、ということでしょうか?
>>823 >functionである意味ありませんか?
>複数のオブジェクトのイベントのプロパティに「=SetHintText()」と入れるだけでいいので、
>楽な方法だと思っていました。
根本的な部分で勘違いしてるな。
function→値を返す
sub→値を返さない
戻り値がないのにfunctionなのはちょっと変。別に問題はないけどさ。
手製のDBをつくって管理していたのですが、レコードが40万を超えてすごく重くなってきました この場合、テーブルを年ごととかに分けたほうがいいのでしょうか? またその場合、分けたテーブルはユニオンクエリで連結させるのでしょうか? それとも完全に分けて使うものなのでしょうか? 素人質問ですがアドバイスお願いします
テーブル分ける前にインデックス見直ししたら?
>>820 > ここまでやって気づいたのですが、帳票フォームを使用しているため、
> ヒントテキストに特定の値を入れてしまうと、どの行も同じ値が表示されてしまいます。
複数見えていても同じオブジェクトだから、フィールド式が
渡せないプロパティでは難しいと思う。
しかし、どういう目的でフォーム上に見えている文字列を
わざわざヒントテキストに入れたいんだ?
> functionである意味ありませんか?
イベントプロパティにユーザー定義関数を直接指定する方法では
Functionである必要があるのでそれで正解。
ただ、[イベントプロシージャ]を指定して、自動で作られたSubを
編集するスタイルの方がイベントによってはイベントに応じた
引数を受け取れるし「より普通」だと思う。
蛇足だが、IsNull()で明示的にチェックするのもいいが、
ctlActive.ControlTipText = Nz(ctlActive.ControlTipText.Value)
とすると少々コードを節約できる。
コントロールにフォーカスがある状態に限定できれば
>>814 のように
Textプロパティが使えるのでNullについて気にする必要もなくなる。
この辺はレコードセット上の値が必要なのか、更新前の編集中の
文字列が必要なのかで選択する方法が違ってくる。
>>825 > またその場合、分けたテーブルはユニオンクエリで連結させるのでしょうか?
> それとも完全に分けて使うものなのでしょうか?
使うレコードなら分けるな
極々まれに使うレコードなら使う時に引っ張り出せ
使わないレコードならしまっとけ、連結など不要だ
>>825 条件によっていろいろだが、
古いレコードは読み取りしかしない
古いレコードはほとんど読み取りもしない
等の明確な分類ができるのであれば、別テーブルや
別mdbに追い出すメリットはある。
串刺し検索が必要なときはユニオンクエリでいいが、
単一テーブルの処理よりは重くなるので、それが
頻繁なら分離しない方がまし。
まだまだ使える、たまにはストライクも出すんだね。「functionである意味」を 値を返すだけにとらわれてる奴らがいておもしろかったぞ。 でもよ、自分の知恵を押しつけるなよ(Textプロパティ)。やりたいことが、違う ことわかったじゃねぇか。帳票でおやりになりたいんだと。マウス移動時のイ ベントと座標を使えば何行目のデータなのかわかるよな。で、Cloneを使えば そのデータも取ってこれるし、なんとかなるんじゃねぇの。 ただ、そこまでして何がやりたいのって思うけどな。
>>825 素人が40万件のデータを処理するDBを考えようとするな。
質問と関係ない答えはイラネ
>>831 お前馬鹿か?
データ量で判断するなよw
ここにいる大勢の馬鹿よりは頭がいい。上っ面でしか 判断できない奴らが多いらしいしな。 意味が通じないと思うだろうから、好きにしてくれや。 データ量云々だけではなく、あの質問が出ること自体 おかしいだろう。
>>834 なぜなのか知りたくなったから、俺みたいなバカにも分かるようにもう少し説明してくれ。
>>835 意味不明w
逃げるんじゃなくて言葉で反論しろよ
Accessを開発のメインにしてると、転職時にそうとうマイナスだぞ。
転職しない人や次もAccessできそうな会社を選ぶならいいけど。
ところで、
>>836 の反論しろよってのは、834に?アンカー間違ってる?
回答に礼も報告もしない質問者は、 > Accessを開発のメインにしてると、転職時にそうとうマイナスだぞ。 以前の問題。 何処行ってもダメぽ。
839 :
812 :2005/09/17(土) 10:31:36
お世話になっています。
>>827 さん
> しかし、どういう目的でフォーム上に見えている文字列を
> わざわざヒントテキストに入れたいんだ?
帳票フォームで1レコード分のデータを1行にまとめているため、
テキストボックスの幅にどうしても制限ができてしまいます。
そうすると、文字数がある程度ある値の場合、後半部が見えなくなってしまいます。
そこで、長い文字列の値が入っていても、カーソルを合わせれば、
値のすべてをみられるようにしたかったのです。
それをスマートに実現できるかな?と思いついたのがヒントテキストでした。
テキストボックスの幅を簡単に変えられたらいいんですが。
もしかして、SpreadSheet使ったほうが簡単にいくのでしょうか。
仮定ができてるならまず自分で試してから書き込めばいいのに
841 :
812 :2005/09/17(土) 10:56:23
>>840 さん
実は、今までActiveX Objectを使ったことがなく、
SpreadSheetを使うなら、またそこから勉強しなおさなければなりません。
ヒントテキストでの表示だと、通常考えられないような
トリッキーな処理になるということであれば、
それもやむなしかと考えました。
現在SpreadSheetを使うことも試してはいますが、
まだテーブルの値を表示させることすらかなわない状態です。
しかし、両方の方法を試していくつもりです。
努力が足りず、ご迷惑をおかけしています。
>>839 > そこで、長い文字列の値が入っていても、カーソルを合わせれば、
> 値のすべてをみられるようにしたかったのです。
なるほど納得。
>>812 コントロールの「マウスボタン移動時」で書き換えちゃえばいいんじゃない?
PCの負荷なんて気にするな。
桐にしとけ上げ
途中で消える質問者。 いまいちよくわからん「まだまだ使える」:それほどスキルがない ことは良くわかった。
846 :
名無しさん@そうだ選挙にいこう :2005/09/24(土) 11:27:29
アクセスはエクセルと違い複数人数でひとつのデータベース ファイルに同時に入力作業ができると聞きましたが、 どのように設定してどのように行うのでしょうか。 ヘルプファイルなどで説明が見れるようであれば、 キーワードなど教えていただけるとありがたいです。
横に並んで座ります 交互にキーボードを打ちます
>>846 Accessで同時作業はオススメしない
849 :
名無しさん@そうだ選挙にいこう :2005/09/24(土) 12:10:25
>>847 大変ご親切にどうもありがとうございます。
>>848 オススメじゃなくてもよいので
教えていただけるとありがたいです。
>>847 さんの説明だと設定方法などよくわかりません。
851 :
名無しさん@そうだ選挙にいこう :2005/09/24(土) 12:20:12
スレ違いかもしれませんが Accessの勉強をしたいのですがおすすめの本やHPなどありますか? 私の周りには使えるひとはおろか、インストールしている人もいないので・・・
そろそろ管理システム研究所がでる(・∀・)ヨカーン!
桐にしとけ 桐はネットワークに対応する遥か以前より、Access の遥か以前より 分散して処理を行って併合するなど朝飯前です。
855 :
851 :2005/09/24(土) 13:18:34
Accessを勉強するのは、これからの企業実習で使用すると聞いたので それの予習としてきちんと扱えるようにしたいんです。 852、853の方せっかく答えていただいたのにすみません
>>849 共有フォルダにMDBを置いて、それぞれのパソコンからアクセスするだけ。
>>851 そういうのからして他人に聞かずに、本屋で手に取って自分で確かめるも
んだ。覚えたいのに本代ケチるな。
>>846 は数ヶ月後にデータ壊れちゃったみたいなんですけどどうしたらいいんですか!?><ってレスしてくるんだろうな。
>>846 ヘルプの目次だけでも眺めればすぐ見つかる
書店に行けばそれようの本もある
やることやってからら掲示板に書き込め
Accessの質問スレはくだスレ化した方が良いのかもしれないな
テンプレも読んでる人少ないしな
そもそも、質問文が文法エラーで 意味ワカラン
桐奨めてる人がいるけど 桐だってそんなに簡単じゃないでしょ ぶっちゃけ、Excel 奨めるべきでわ?
>>1 にあるテンプレいらねえんじゃないの?
特に、■これだけはやりました はウザイ事この上なし
明白な質問は、「ヘルプ見れ」って回答すれば良い訳だし
>>862 エクセルは別ジャンルのソフト
あんた馬鹿じゃないの
>>862 Access でVBA使って頑張って作る機能が、桐では始めから用意されている事が多い
そういう様々な関数が始めからAccessに用意されていれば便利だなと思う今日この頃
>Access でVBA使って頑張って作る機能が、桐では始めから用意されている事が多い 興味があるので具体例の列挙をキボン。 自分は四捨五入以外の例を全然知らないんで・・・
累計、データのグループ化、表示モードと更新モード、レポート罫線、行集計、行復活、行移動、一覧表印刷、etc.
表示モードと更新モードって、それほど重要かな? レポート罫線は、Accessにもあるが何が違うのか教えてくんろ。
アクセスの罫線はあるにはあるけど、エクセルのような表形式でのレポートが作りづらいんじゃないかな? 自分もよくそのような表形式でレポートを作るけど大きいのになるとエクセルにエクスポートしないと作るのめんどくさくなる@w@ ついでに表形式などでレポート作るときに行番号(連番)を付けるのをいつも諦めている・・・その辺のところがアクセス弱いなぁっと思う
データーベースソフト、『桐』についての質問です。 桃山時代の慶長年間から平成にかけて整理したいと思います。 入力するべき計算式を教えてください。 当方、初心者です。
すみません、初心者以下の質問で申し訳ないのですが、 Accessを使って、Excelに出力できるようにはできますか? やりたい事は、Accessで製品と数値を選択して、そのまま Excelに工事明細のようなものを出力できるような感じがいいのですが… そういった事は可能ですか? また、可能であればどのような本が一番 そういったシステム作りに生きそうですか? ちなみに自分はAccesssほとんど遣ったことの無い人間です。 Accessのバージョンは2000です
>875 AccessからExcelファイルへ直接、数値を代入する方法 AccessからCSVなどでエクスポートしExcelでインポートする方法 などがあります。 本は、本屋へ行って自分の目で見て自分に合うものを購入するか ネットでいろいろ調べて購入してみてください。ネットのブックショップで あれば目次や内容が記載されているので、Excelとの連携が記載され ているか分かると思います。
>>872 は年代順の並び替えのことを言ってるんじゃないのか?
明治-大正-昭和-平成とか??
ABC-12345 という文字列を 54321-ZZZ と関数で変換する為にはどうすればよいでしょうか? streverce関数で反転までは成功したのですが、ABCをZZZに同時に置換する事が できません。 クエリで行っております。
http://www.geocities.jp/cbc_vbnet/function/mojireyu_function.html 09.文字列の置換Replace関数は指定文字列を別の文字列に置換します。
【書式】 Replace(文字列式,被置換文字列,置換文字列[,検索開始位置[,
置換回数[,比較種別]]])
文字列式:置換する文字列を含む文字列式
被置換文字列:置換される文字列
置換文字列:置換する文字列
検索開始位置:文字列式内の検索開始位置。省略した場合は先頭位置から検索されます。
置換回数:置換する文字列数。この引数を省略した場合はすべての候補が置換されます。
比較種別:文字式を比較するときに使用する文字列比較モード。規定値は-1です。
>>880 関数の組み合わせ方が分からないのですよ。
フィールをを2つ作ればできたのですが、不恰好で・・・。
サンプルコードをお願いできませんか?
strreceive(replace([fildname],"find","match",1,10000000000000000000000000000000000000000000,0))
strreverseだった
>>883 すごい!すごい!できました@
お願いついでなんですが、置換する文字列が ABC を ZZZ にして
かつ ORZ をYYYにもしなければいけないんです。
置換条件を増やすにはどうすればいいのですか?
885 :
名無しさん@そうだ選挙にいこう :2005/09/28(水) 01:02:27
>>870 それは使い方がわかってないだけだぞ。
複雑な表は苦手だが、単純な表なら一行分のデサインでOKだし。
もちろんレコードソースを設定してる連結レポートの話。
連番も、演算コントロールにして集計実行プロパティを設定す
ればできる。
出来る出来ないの議論じゃなくてぇ、、、、、 メンドクサ
>>888 桐関数で変換するには、桐内部では、明治・大正・昭和・平成 までしか変換データを持っていない筈。
> 桃山時代の慶長年間から平成にかけて
の元号と西暦の対応表を自分で作って表引き関数を使え
年の途中で元号が変わる場合もあるので工夫が必要
>>891 基本を勉強しずに横着してるからちょっとわからんなぁ
表引き関数って何ですか?
例えば、明治・大正・昭和・平成の表引き関数ってどうなっているのですか?
素人なので申し訳ありません。
明治・大正・昭和・平成を例にとって計算式をつくっていただければありがたいのですが・・・
>>891 ホントに何もわかりませんので、よろしくお願いいたします。
>>892 本当にすみません。
その基本の勉強の仕方がわかりません。
マニュアル本を読んでも何も書いてないので許してください。
896 :
名無しさん@そうだ選挙にいこう :2005/09/29(木) 07:59:43
桐さん 教えて、昔DOSの頃桐をやった。 そのほか一太郎とLotus1-2-3。 それにThe CARDと言うやつもやったなぁー。 マイクロソフト抱合せでワード・エクセルだからAccessに仕方なく 変更しました。 で知りたいのは、IMEは一太郎のように桐専用なの。 変な質問かな。 時々出てくる年寄りだ。
>>894 IME は相変わらず松茸ってのが付属してくるが、使ったことないな
MS-IME 使ってるよ
確かDOSの時は松茸使うと桐の中から部首変換出来たり桐のファンクションキーと相性抜群だったり
利点はあったと思うが、
Win になってからは、どれも同じだと思う
MS-IMEもATOKでも松茸でも好みで使うと良い
アンカーずれてるな
VBAでフォーム上にテキストボックス新規作成して配置する方法教えてください。Access2002です。
>>894 少しは自分で調べたら?
いい加減うざいよ
902 :
900 :2005/09/29(木) 12:04:33
CreateControl メソッドで自己解決しました。
30分くらい調べてから質問しような
Access2000を使っています。 挿入でクラスモジュールを作れますが、クラスモジュールのメリットとはなんでしょうか? 標準モジュールに普通に引数を渡すことで大抵のことは出来ると思うんですが、 クラス化するメリットがあれば教えてください。
>>904 構造化プログラミングの利点についてなんて質問丸投げするなアホ。
オブジェクト指向だけどまぁいいやめんどい
907 :
名無しさん@そうだ選挙にいこう :2005/09/29(木) 14:51:07
908 :
904 :2005/09/29(木) 15:52:22
>>905 ,906
大人数で開発をしたり大規模なシステムなんかで役に立つのはわかります。
コードも見やすくなるし、他のシステムでも利用できるわけで
そういうメリットはわかります。
でも、逆に言うと1つのmdbで完結するようなシステムでしかも一人で開発する場合は
それほどメリットも無いのかなと思ったりしましたがどうでしょう。
>>907 そこは読んだのですが、まあ上で書いたとおり一人でプログラミングするレベルでは
あまり役に立たないのかなと思ったので質問してみました。
>>908 > それほどメリットも無いのかなと思ったりしましたが
じゃあ聞くなよーー
911 :
904 :2005/09/29(木) 16:34:36
そんなに気分を害するような質問でしたか? 別に「クラスモジュールなんていらねーじゃん。邪魔なものはつけんなMS!」 っていってるわけじゃなくて、もし使いこなせるようになったら さらにいいプログラムを作れるかなと思って興味をもっただけです。 つーか、ここのスレってどんな質問なら相談にのってもらえるんですか?
必要かどうかは人によるわけでお前がいらないならいらないんだよ
913 :
名無しさん@そうだ選挙にいこう :2005/09/29(木) 16:38:37
クラスモジュールなんていらねーじゃん。邪魔なものはつけんなMS! 桐にしとけ!!
914 :
904 :2005/09/29(木) 16:40:05
>>912 だから、いるかいらないか以前の問題として、クラスモジュールで何が出来るのか
知りたかっただけです。
916 :
904 :2005/09/29(木) 16:46:50
>>915 そこに書いてあること以外にはメリットは無いということでいのでしょうか?
918 :
904 :2005/09/29(木) 16:52:54
>>917 じゃあって・・・
もうこの話はいいですが、もし時間があるのなら後学のために
私の質問の何が癇に触ったのか教えていただけませんか?
今後このようなくだらない質問でこのスレを汚さずにすむので
よろしくおねがいします。
919 :
名無しさん@そうだ選挙にいこう :2005/09/29(木) 18:41:13
Accessって何のためにあるんですか? Excelで十分だと思うんですけど。
馴れ合いの雑談したいなら最初からそう書け! 小出しに質問するふりは答えてくれた方々を馬鹿にしているYo! まず友達を作る努力をしたら良いと思うYo!
ああ、それいいな。 「分からないことがあったら友達に聞け」 これ次スレのテンプレに追加しよう。
922 :
904 :2005/09/29(木) 18:51:35
>>920 これって私に言ってます?
小出しにしたつもりはなくて、最初からメリットはありますか?
って聞いたんですが・・・。
>>922 >これって私に言ってます?
質問は友達にお願いします。
>>922 じゃあバイバイってことで。
強く生きろよ。
925 :
904 :2005/09/29(木) 19:05:26
わかりました。 友達に聞くことにします。 ありがとうございました。 そしてお騒がせいたしました。
待て。謝罪より賠償が先だ。
>>919 > Accessって何のためにあるんですか? Excelで十分だと思うんですけど。
ゲイツ君に聞かないと真相は解らないけどね
確かにExcelVBA屈指すればかなりの事は出来るよね
でも、Excelで十分かどうかは用途によるわけで、全てじゃないと思うぞ
Excelで十分じゃない用途には向いてるんじゃないかな
俺はExcelで出来る程度の用途にもDB管理はAccess使ってるよ
DB管理はExcelよりAccessの方が容易じゃないのか?
Accessでメンドイ場合は桐使ってるけどな w
>>904 コードの使いまわしが楽で(゚д゚)ウマー
浮いた時間であんな事やこんな事(ry
2chで煽ったりとか時間を有効に使えるよな
VBAなんて、まともにオブジェクト指向するのは無理だから クラスなんていらない。VBもそうだ。派生できんしよ。
じゃあ、いらないってことで。
932 :
名無しさん@そうだ選挙にいこう :2005/09/30(金) 19:57:35
アクセスからロータスを操作することってできますか あるセルに直接データを流し込んで計算印刷など をしたいのです
知らん
935 :
932 :2005/10/01(土) 06:14:46
ロータスがエクセルにうまく変換出来ませんでした とりあえず適当に作りましたがだめでした Private Sub コマンド8_Click() On Error GoTo Err_コマンド8_Click Dim objLotus123 As Object a& = Shell("C:\lotus\123\123w.exe", 1) Set objLotus123 = CreateObject("Lotus123.Application") objLotus123.Workbooks.Open ("D:\a.Lotus123") objLotus123.Visible = True 'Only XL 97 supports UserControl Property On Error Resume Next objLotus123.UserControl = True objLotus123.Range.[a1].Contents = 5 Exit_コマンド8_Click: Exit Sub Err_コマンド8_Click: MsgBox Err.Description Resume Exit_コマンド8_Click End Sub
>Set objLotus123 = CreateObject("Lotus123.Application") ひょっとしてそれはギャグで書いているのか?
自作クラスです
939 :
932 :2005/10/01(土) 10:48:56
>>938さん ありがとうございます ロータス2000です
940 :
名無しさん@そうだ選挙にいこう :2005/10/01(土) 10:53:43
リンクテーブルでExcelファイルへのリンクを作って追加・更新をするAccessのアプリがあります。 数日前にAccess2003のSP2を適用したらリンクテーブルは作れるものの参照しかできなくなってしまいました。 手動でリンクを作っても参照だけしかできないリンクテーブルしか作成できなくなっていました。 長期的にはリンクテーブルを作らないで動く仕組みを考えますが、 一時しのぎ的に解決する方法は無いでしょうか? SP2は一度入れると削除できないようなので、他の方法を探しています。 セキュリティのレベルを下げるとかで追加・更新できるようになれば良いのですが・・・ 最後の手段は、SP2を適用してしまったパソコンのOfficeを入れなおしてWindowsUpdateを停止するのかなぁ・・・と思っています。 ちなみにOffice2000,XP,2003(SP1)で問題は出ていません。 なにかよい知恵は無いでしょうか?? よろしくお願いいたします。
SP2を適用してしまったパソコンのOfficeを入れなおしてWindowsUpdateを停止する
Access2002を使用しています。 ラベルとテキストボックスの関連づけをVBAから参照する&変更する方法があったら教えてください。
944 :
名無しさん@そうだ選挙にいこう :2005/10/02(日) 01:13:43
もうそろそろ次スレか
945 :
名無しさん@そうだ選挙にいこう :2005/10/02(日) 12:19:02 BE:10198433-##
ADP+MSDEでクライアント側でExcel形式の帳票を作成したいんだけど、、、 何か遅いです。 do until rst.eof .range("A" & i).value = rst!ほげ 以下続く i=i+1 rst.movenext loop こんな感じでexcel出力してるんですけど、もっと早い方法ある?
>>945 txtかcsvでいったんファイル化。それをExcelで開く。
体裁整える必要があるなら随時適当に。
947 :
名無しさん@そうだ選挙にいこう :2005/10/02(日) 21:17:47
>>946 さんくすこ。かなり早くなりました。でもExcelのマクロって基本的に
遅くないですか。こんなもんなんかなー。再計算してるからか?もしかして。
>>947 再描画してるからなんじゃないかなぁ。切ってたらごめん。
ちなみに、CopyFromRecordsetでどうよ?
949 :
947 :2005/10/02(日) 22:45:31
>>948 あぁ、、CopyFromRecordsetこんな便利なものがあったのか、、、知らんかった。
試してみました。これも速い。
>>945 よりは劇的に速くなりました。
でも、こうなるとその後の体裁整えるとこがちょっと遅いのが目立つんです、、、
ScreenUpdateは切ってますけど、どうもね、、、
952 :
名無しさん@そうだ選挙にいこう :2005/10/03(月) 02:57:41
Access初心者です。どうか教えてください。 会社で使用しているのですが、レポートを出力しようとすると、 1枚につき3・4枚の白紙が出てきます。50枚印刷しようと思うと、200枚(大半が白紙)出てきます。 前任者の設定がおかしかったと思うのですが、そのように直せばいいのでしょうか? お願いします。
>>952 どのように直そうとしているのか知らないけど、
「そのように」直せばいいんじゃない?
>>952 俺はエスパーじゃないのでそれだけじゃ答えようがない
>>949 どの程度だから遅いって感じてるのかわからない。
早いとは思わないけど、よっぽど複雑な表をマクロで処理しない限り、
いらつくほど待つような速度ではないと思うけど。
956 :
名無しさん@そうだ選挙にいこう :2005/10/03(月) 08:35:06
>>952 プリンターが変わればよく起きる現象です。
私は、まず
@ プリンターページ設定を見て、左右・上下を最小にする。
通常のプリンター(レーザー)は左右・上下とも最小は
余白5.00ミリ。
A 次にAccessレポートの設定、右及び下を少しずつ縮小して行く
@Aを繰り返す
色々のプリンターでやりました。
キャノン・エプソン・リコー・NEC・シャープ
経験からキャノン・エプソンでセットしたものはどちらも正常だったが
それを他のプリンターで出力すると952さんのようになった。
それにしても
>200枚(大半が白紙)出てきます。
200も出すとはご立派。
どなたか、教えて下さい。 郵便番号入力で -(ハイフン)省略出来ますね。
プリントで、ハイフン入れるのはどうしたらいいのか教えて下さい。
957 :
名無しさん@そうだ選挙にいこう :2005/10/03(月) 08:49:07
>>952 続き。 修正する時、つどプリントすることはないです。
印刷プレビューでみれば判るはず。(白紙が出ていること)
どうしてもダメな時は、作り直ししか有りません。
作り直すと言っても簡単、とりあえず新規作成で詳細をコピー、張付け
して見る。 それでもだめなら、新しく作る以外にありません。
>>956 プリント時にハイフン入れるなら
Left([郵便番号],3) & "-" & Right([郵便番号],4)
をクエリなりレポートなりに設定すればいいんじゃないかな?
960 :
名無しさん@そうだ選挙にいこう :2005/10/03(月) 12:58:32
>>958 959さん
ありがとうございました。956です。
>>939 会社の倉庫からSuperOffice2000を見つけてきたが
まだここ見てるか?
962 :
932 :2005/10/03(月) 20:22:56
>>961 ありがとうございます
ちょくちょく見てます
ぜひご教授ねがいます
>>956 入力の-省略はいいと思うが、データとしては-も登録するって
のも有りだと思う。
965 :
名無しさん@そうだ選挙にいこう :2005/10/03(月) 20:42:33
質問です。 ACCESSの機能に「フォームフィルタ」なるものが ありますが、これを使うとフォーム上に作った コマンドボタンが使えなくなります。 フォームフィルタボタンを押し、現在フォーム上でアクティブになっているフィールド(テキストボックス)の 内容一覧を一覧フォーム(別途作成済みで、GROUP BY でまとめるつもり)に一覧として出し、 その別途作成したフォームのListBoxを選択すると、 その内容が元のフォームのアクティブだったテキストボックスに反映される。 これをいくつかのテキストボックスで繰り返して、最後にフィルタの実行をしたいのです。 ご指導お願いします。
トリプルマルチ乙 757 名前:NAME IS NULL[] 投稿日:2005/10/03(月) 20:30:39 ID:11vY/JMK 作って欲しいというか、質問です。 ACCESSの機能に「フォームフィルタ」なるものが ありますが、これを使うとフォーム上に作った コマンドボタンが使えなくなります。 フォームフィルタボタンを押し、現在フォーム上でアクティブになっているフィールド(テキストボックス)の 内容一覧を一覧フォーム(別途作成済みで、GROUP BY でまとめるつもり)に一覧として出し、 その別途作成したフォームのListBoxを選択すると、 その内容が元のフォームのアクティブだったテキストボックスに反映される。 これをいくつかのテキストボックスで繰り返して、最後にフィルタの実行をしたいのです。 ご指導お願いします。 252 名前:NAME IS NULL[] 投稿日:2005/10/03(月) 20:41:50 ID:11vY/JMK 質問です。 ACCESSの機能に「フォームフィルタ」なるものが ありますが、これを使うとフォーム上に作った コマンドボタンが使えなくなります。 フォームフィルタボタンを押し、現在フォーム上でアクティブになっているフィールド(テキストボックス)の 内容一覧を一覧フォーム(別途作成済みで、GROUP BY でまとめるつもり)に一覧として出し、 その別途作成したフォームのListBoxを選択すると、 その内容が元のフォームのアクティブだったテキストボックスに反映される。 これをいくつかのテキストボックスで繰り返して、最後にフィルタの実行をしたいのです。 ご指導お願いします。
トリプルたぁ景気がいいこって。
968 :
932 :2005/10/03(月) 21:12:39
>>まだまだ使えるさんへ 自分でもヘルプで調べたのですが この中にこんな記述がありました。 1-2-3 はアプリケーション型オブジェクトではなく文書型オブジェクトを戻します。 1-2-3 アプリケーションオブジェクトにアクセスするには、文書オブジェクトにアク セスしたあと文書オブジェクトの Parent プロパティ(Document.Parent)を使います。 関係あるとは思いますが、ここからどう組み合わせればいいかわかりませんでした。
969 :
名無しさん@そうだ選挙にいこう :
2005/10/04(火) 00:52:50 >>956さん 952です。 確かに、私が現在の部署に配属される直前に、プリンターを替えたみたいです。 ACCESS自体、初心者でパニック状態だったのに、 それで、200枚と表示された時には、血の気がひきました。 試してみます!!ありがとうございました。