1 :
名無しさん@そうだ選挙にいこう :
2007/04/07(土) 20:03:33 ACCESSに関する質問はこちらへ!
▼━ 質問のしかた ━━━━━━━━━━━━━━━━━━━━
★ OS、ACCESSのバージョンを明記してください。
★ 質問内容は具体的に書いてください。
・何がしたいのか
・どんな処理を試したか
・動作状況など駄目な理由
テーブル/フォームの構成、クエリ、VBAの内容など差し支えない
範囲で詳しく書くと、早く回答が得られるかもしれません。
図解があれば尚良し。
聞き返さなくても詳細が把握できる質問が望ましいです。
★ 事前にヘルプ・Google等で調べられる範囲は調べてください。
大概の疑問は検索することで解決します。
★ アドバイスを貰ったら、必ず経過・結果の報告をして下さい。
ギブアンドテイクで情報を共有しましょう。
▼━質問テンプレ (出来れば使ってね) ━━━━━━━━━━━━
【 システム環境 . 】 Windows**, Access**
【 VBAが使えるか .】 はい・いいえ
【 VBAでの回答 】 可・否
【 検索キーワード 】 Googleやヘルプでの検索キーワード
前スレ
ACCESS総合相談所 その16 【桐にしとけ】
http://pc11.2ch.net/test/read.cgi/bsoft/1157195290/
2 :
名無しさん@そうだ選挙にいこう :2007/04/07(土) 20:04:17
5 :
名無しさん@そうだ選挙にいこう :2007/04/09(月) 11:44:01
【 システム環境 . 】 Windows2000&XP, Access2000 【 VBAが使えるか .】 はい 【 VBAでの回答 】 可 【 検索キーワード 】 adp 2000 XP 表示されない Windows2000とXPでACCESS2000のADPを使っています。 開発は2000で行ってるのですが、 2000で作成したadpをXPで見ると、ビューのデザイン画面にテーブルと各項目が表示されません (でもSQL文は表示され、実行もできる。) 運用上、XPでもビューを編集することがあるため(パラメータの追加等)困っています。 これはACCESS上のバグなのでしょうか? 何か解決方法をご存知の方はご教授願います。
6 :
5 :2007/04/09(月) 13:54:09
自己解決しましたー どうもXPでは日本語の「ー」を計算記号として認識してたらしく; [ ]で文字列をくくってやったら、XPでも正常に出力されました。 お騒がせ致しました orz
7 :
名無しさん@そうだ選挙にいこう :2007/04/09(月) 17:48:30
【 システム環境 . 】 WindowsXP, Access2007 【 VBAが使えるか .】 いいえ 【 検索キーワード 】 Access フォーム 検索 始めたばかりなんですがすみません、クエリを作成して そのクエリの単票フォームを作ったのですが、そのメインフォームの近くに 検索したい文字(数字)を入力してそれに適合するレコードを表示したいのですが そういう欄って作れないでしょうか・・?リボンの検索ボタン押さないと駄目でしょうか? お願い致します。
マクロ作成 フィルタの実行 フィルタ名・・・省略 Where条件 [検索したい元テーブルのフィールド名] Like "*" & Forms![フォーム名]![検索入力用テキストボックス名] & "*" な感じでつくったマクロを、ボタンのクリック時イベントにでも指定すればほぼお望みのことが出来るとは思うが Dim StrSQL As String StrSQL="SELECT * " StrSQL=StrSQL & "FROM 元テーブル名 " StrSQL=StrSQL & "WHERE 検索したい元テーブルのフィールド名 Like "*" & Forms![フォーム名]![検索入力用テキストボックス名] & "*" Forms!フォーム名.RecordSource=StrSQL これぐらいのVBAをおぼえる気はないか そうか、ないか、いやべつにいいんだが >>リボンの検索ボタン (・∀・)<・・・?
10 :
名無しさん@そうだ選挙にいこう :2007/04/12(木) 09:53:38
新スレ祝あげ
11 :
名無しさん@そうだ選挙にいこう :2007/04/16(月) 16:26:52
私はアクセスが高いのでまだ使ったこともないのですが たとえば一万字のデータがあって、その中にたとえば パイナップル という単語がいくつあるかをパイナップルをパイナップルに置き換えて その個数を数えているのですが 出来るんでしょうか 何万字のデータでもいけるのでしょうか? 今一生懸命エクセルで解析
>>11 日本語でOK
つか、出現回数カウントするなら
VBAでSplitのデリミタをパイナップルで指定して、
配列に格納してからUBound()とLBound()使って
Ubound() - Lbound() + 1すればいいだろ?
13 :
名無しさん@そうだ選挙にいこう :2007/04/16(月) 20:33:54
>>12 難しそうですね。ちょっと初心者には敷居が高そうです><
エクセルでもどうにかならないし ウーン
>>11 いますでにExcelに入力されているなら、単語数をカウントする
ためだけにAccessに持ってくる必要も別にないんじゃないかな。
A1セルに入力されてるんなら、
=(LEN(A1)-LEN(SUBSTITUTE(A1,"パイナップル","")))/LEN("パイナップル")
みたいな式で終わりじゃないの?
問題は使うソフトの種類じゃなさそうだな。
問題は使う人の種類にありそうだな。
>>13 性器表現を覚えるんだ
VBAでも参照設定すれば(もしくはCreateObjectすれば)使えるし
まあテキストファイルをVBScriptで処理した方が簡単そうだが。
チンコとかマンコとかなら覚えるでもなく既に知ってる。
そこはawkでとか突っ込む所だぞ。
いや、チン○を突っ込む所だろ。
21 :
名無しさん@そうだ選挙にいこう :2007/04/18(水) 17:41:29
ありがとうございます
22 :
名無しさん@そうだ選挙にいこう :2007/04/18(水) 17:42:54
VistaでAccess2007を使っています VBA二十日得ません。 VBAでの回答は否 「元に戻す」の動作が発動しません。 他のツールでは一つ動作をした後、「元に戻す」ボタンを押せば 一つ前に戻れますが Access2007ではほとんどの場合、「元に戻す」ボタンで戻れません。 (文字を入力したあとで、それを一文字戻すとかなら可能) これを解消して、全ての動作で「元に戻す」ボタンが使えるようにすることはできますか?
桐なら出来るけど、Accessでは無理じゃね
MSに数十億か数百億か、とにかく金積んだら、仕様変更してくれると思うよ。
25 :
名無しさん@そうだ選挙にいこう :2007/04/18(水) 20:23:52
ありがとうございます。
もう一つ質問なのですが
>>22 と同じ環境で
ルックアップの値を変更する方法を教えて下さい。
ネットをを見てやっていたのですがどうしてもできませんでした。
>>22 どういう操作をしてどこまで戻したいのかわからんけど、
Escキーを1回もしくは2回押して元に戻るのはNGなの?
>>26 レコードの更新や削除をしてから「元に戻す」で戻したいんだと思う
28 :
名無しさん@そうだ選挙にいこう :2007/04/19(木) 09:31:15
>22 「元に戻す」ってテーブルのデータシートビューでのこと? アクセスだけでやろうとせず エクセルにデータをコピペして編集して元に戻さなくてもいいくらい満足したら貼り付けれ。 それか、編集前の状態をエクセルに残しとくか(バックアップ的な感じ)。 アクセル使えるならエクセルも使えるっしょ。 (日付型に気を付けてね、2007はどーか知らんが エクセルに貼り付けたとき日付の表示形式が勝手に "日-月の英語表記-年下2桁" になる。 表示形式を"年/月/日" とかに変えてからアクセスに貼り付けんとエラいことになる。)
29 :
名無しさん@そうだ選挙にいこう :2007/04/19(木) 10:36:42
沖縄県の方へ(命に関わる注意事項です) 沖縄県での選挙ですが、どうか民主党だけは避けてください。県民の生命に関わる可能性があります。 民主党の最大の公約は一国二制度(※)ですが、一度「一国二制度 沖縄」等で検索をお願いします。 この際、民主党のHPで調べても良いです。以下の注釈↓と矛盾することは書いてないはずですから… ※一国二制度 簡単に言えば沖縄を中国と日本の共有物にし、そこに3000万人の中国人を入植させます。 (つまり沖縄人口の 96% を中国人にして、実質、沖縄を中国人の居住地とします。) さらに「自主」の名の下、沖縄で有事が起きても自衛隊は干渉できません。 3000万人の中国人が、少数派となった130万人の日本人に何をしても、です。 そして中国人の反日感情の強さは、ほとんどの日本人の理解を超えるものです。 今回の選挙で民主党が勝った場合、「自主」「発展」を連呼しつつ段階的に進めていくことになります。 自主と言っても、自主を認めるのが「住人の96%が中国人となった」後だということに気をつけてください。 発展と言っても、新沖縄の少数派となった「少数民族日本人」の発展ではないことに気をつけてください。
30 :
名無しさん@そうだ選挙にいこう :2007/04/19(木) 17:31:04
以前もお世話になったことあるのですが、またよろしくお願いします。 また、スレを間違えてしまい、マルチになってしまうことをどうかお許し下さい(急を要するため) Access2003(クライアント)とSQLServer2005 Standard(サーバー)で業務システムを構築することになりました。 そこで、質問があります。 @.Accessでマクロは使わず、VBAでDoCmdステートメントを使った方が良いでしょうか? A.両者の接続は、OLEプロバイダを使い操作はADOで行こうと思っているのですが、 トランザクション処理を考えた場合、DoCmdでのデータ保存は禁止にした方が良いのでしょうか? なにせ初心者なものですから、質問に矛盾がどざいましたらお許し下さい。 教えて下さい、よろしくお願いします。m(__)m 以上です。
@使わないほうがよい A禁止したほうがよい
B自らのスキルを大幅に超えた挑戦はしないほうがよい
>>30 (Docmd.)RunMacroやRunSQLとかはかんべんな。
34 :
名無しさん@そうだ選挙にいこう :2007/04/20(金) 09:17:45
35 :
名無しさん@そうだ選挙にいこう :2007/04/20(金) 09:23:14
>>34 ですが、度々すみません。
ということは、
@マクロやDoCmdは一切使わず、レコードセットに対して
トランザクション処理(コミット、ロールバック)をかけていくということで
よろしいでしょうか? 例え、単票形式のフォームであっても・・。
A当然と言われそうなのですが、フォームは連結フォームも禁止という事
になりますね?
度重なる質問失礼致します、教えて下さい。
VBA 使うくらいなら、VB で構築しろ Access 使うなら、VBA じゃなくてマクロ主体にしろ それが壊れない為に重要な点 結論、Access イラネ!
37 :
名無しさん@そうだ選挙にいこう :2007/04/20(金) 10:25:44
皆さんはSQLを勉強するに当たってどのような方法・書物などを用いましたでしょうか? Excelでは不足気味になってきたので、Accessにてデータの統計を取りたいと考えているのですが、 SQLで妻付いてしまいます。 皆さんの経験談をお聞きして、自身の勉強法改善に繋げたいと思っています。 よろしければ、どのような物(書物・テキスト)を利用し、どのように勉強を進めて行ったかを、 ご教示ください。 また合わせて注意点などもお教えください。 当方環境 【 システム環境 . 】 WindowsXP, Access2000 【 VBAが使えるか .】 いいえ
>>37 適当に「SQL入門」って書いてあった赤い表紙の本買ってきたwww
>>37 適当にクエリでデザインビューとデータシートビュー見比べながら思う結果が出るように作り込んで、
最後にSQLビューで「ああーこう書くとこうなるのかー」と納得する。
>36がAccessをロクに使ったことないことだけはよく分かった。
41 :
35 :2007/04/20(金) 14:07:14
>>40 説明不足だったかもしれません。AccessはMDB形式ではなく、プロジェクト形式で使います。
使いたいのは、主にフォーム・レポート・モジュールで、マクロは避けた方が良いと言う話も
聞いたのでマクロ禁止にしようと思ったのです。 それでも
>>31-33 >>36 のような結論になる
のでしょうか?
>>37 内輪で使う(イントラ)ならT-SQL(SQLServer)の方がいいよ。
Accessのインストールディスクにこっそりタダで付いてたりするし、
Access自体は2007で意味不明な方向に変化してるし。
T-SQLなら本はまず、
「SQL Serverで学ぶデータベース入門」
SQLの基本だけを順序良く説明してくれてるんだけど…絶版でユーズド7600円@amazonって正気じゃねーな。
読み終わったら勢いで
「SQL Server 2005 ストアドプロシージャ プログラミング」
を表面だけ流し読み(俺は2000だったけど)。こっちは定価で6090円だwww
>>41 みたいな問題(Accessの機能、AccessVBA、VB+有償コンポーネント、VB.Net+有償コンポーネント)の
どれを使うかは別の話。
C++で書けよ
>>41 SQL-ServerExpressならタダなんだし、とにかくやってみればいい。
別に誰も止めはしないから。
でも質問のレベルから察するに結果が
>>32 になるのは今から明白というか
火を見るより明らかというか・・・ とにかくうんざりするほど沢山の壁にぶつかることに
なると思うんで心の準備だけはしておいてw
jm
46 :
名無しさん@そうだ選挙にいこう :2007/04/21(土) 15:25:50
初心者レベルのような質問する所でないようなのに、すみません。 クエリで演算するフィールドを作りました。その値を切り上げでほしいのですが、 エクセルだとRoundupですよね、Accessにはフィールドでは使えないのでしょうか? うまくいきません。よろしくおねがいします。
47 :
名無しさん@そうだ選挙にいこう :2007/04/21(土) 16:07:30
46です。あんなに探してわからなく書き込みしましたが、解決できました。 おさわがせしました。これからも精進するので、また厄介になりますが、よろ しくお願いします。
48 :
名無しさん@そうだ選挙にいこう :2007/04/23(月) 10:40:48
accessのファイルを配布する際に、MSIファイルを作成して インストーラでインストールしてもらうことってできますか? installShield使えば可能らしいのですが、できれば無償で…
2007だったらランタイム含めて無償で近々に公開されるよ MSのWebページ見れ、本国の開発者向け、英語
>>49 ありがとうございます。
ランタイムは6月ごろの公開を目指して開発しているらしいですね。
桐2007も1/6発売開始!
52 :
名無しさん@そうだ選挙にいこう :2007/04/23(月) 14:35:16
>>41 だけど
>>44 は
>SQL-ServerExpressならタダなんだし、とにかくやってみればいい。
なんて回答している段階で、天にツバじゃね?
>でも質問のレベルから・・・
レベルっておまえさん単なるPG=デジタル土方だろ?
本当にできる奴は親切かつ具体的なレスをするものだよ
キミ新だ方がいいね、(・∀・)シネ!
54 :
53 :2007/04/23(月) 21:40:56
今気づいたけど、2007ではDeveloperExtensionsも無料の予定なのね…。
>>54 なんか、最後の大放出みたいだね。
2007でAccess打ち止めかな?
MSとしては、SQL Serverで一本化させたいし、スタンドアローンなら拡張されたExcel & VBA使えという事でしょう。 大体Accessって、MSKKが力を入れていただけじゃなかったっけ?
57 :
名無しさん@そうだ選挙にいこう :2007/04/24(火) 15:28:20
58 :
名無しさん@そうだ選挙にいこう :2007/04/24(火) 18:03:47
Commerce Server 2007 Developer Edition も無料だし 今後はそういう方向に行くんじゃないの
59 :
名無しさん@そうだ選挙にいこう :2007/04/24(火) 21:00:16
2007で、ある項目の中の、一つのデータの部分だけ文字の色を変えたり、太くしたりする方法はありますか?
60 :
名無しさん@そうだ選挙にいこう :2007/04/24(火) 21:19:05
【 VBAが使えるか .】 いいえ 【 VBAでの回答 】・否 です
62 :
名無しさん@そうだ選挙にいこう :2007/04/25(水) 00:15:51
ありがとうございます。 早速使ってみようとしたのですが、 特定のテキストを反転させ、 ホームタブ→リッチテキストのところにいっても リッチテキストのボタンがoffになっていてクリックできません。
上の文ぱっと見て 「ほー、最新のAccessはホッチキス止めまでやれるのか」 と思ってしまった
>>62 フィールドのデータ型をリッチテキストにしてあるか?
65 :
名無しさん@そうだ選挙にいこう :2007/04/25(水) 09:41:57
62です ありがとうございます。できました。 ただ、データ型を「メモ型」にしないとこれはできないのでしょうか? 数値型にしてあったので、数値型のまま色を変えたりできるといいのですが。 これはメモ型でしかできない事ですか?
うん
67 :
名無しさん@そうだ選挙にいこう :2007/04/25(水) 16:13:47
ありがとうございます。
ぜいたくな望みなのですが
データ型を「メモ」にすると「集計」で「カウント」しか選べません。
なので
>>59 のようにできて、集計でも「平均」や「最大」など、さまざまなものが選べるようにしたいです。
VBAが使えないと不可能でしょうか
68 :
名無しさん@そうだ選挙にいこう :2007/04/25(水) 17:33:46
ACCESS2003で顧客管理用のデータベースを作ろうと思っています。 以前作ったときは一人で使うものだったので単一のmdbファイル構成でした。 今回は複数の人が同時に使う可能性があるのでフロント部とデータ部を分け、NAS内にmdb形式でデータ部を置こうと思っています。 解説書をいろいろ読むとデータベースとの接続に ADOやDAOで接続すると書いてあるものがかなりありました。 両者の違いは何となく理解したのですが 疑問が生じました。 mdbファイルを分割してデータ部をリンクテーブルとしてNAS内に置いた場合はDAO接続扱いになるのでしょうか?
リンクテーブル扱い
>>67 そうなると項目そのものを集計するんじゃなくて
CLng(項目)やCCur(項目)を集計するしかないよ。
項目が数値型じゃないからそのうちデータに文字が紛れ込んで
変換エラー起こすだろうけど、まあその時には自業自得ってことで・・・
71 :
名無しさん@そうだ選挙にいこう :2007/04/26(木) 15:06:08
ではやはり集計するなら、
>>59 のような事はあきらめなければなりませんか?
72 :
名無しさん@そうだ選挙にいこう :2007/04/27(金) 09:54:23
ようするに、如何にチンコを太く長くするかがよほど大事だ
73 :
名無しさん@そうだ選挙にいこう :2007/04/27(金) 11:48:54
それはビジネスになる
74 :
名無しさん@そうだ選挙にいこう :2007/04/27(金) 13:25:29
つでに、大きいチンコに合ったでかい金玉も必要だ
【 システム環境 . 】 WindowsXP HOME**, Access2003** 【 VBAが使えるか .】 いいえ 【 VBAでの回答 】 否 【 検索キーワード 】 オブジェクトライブラリは登録されていません ActiveXコンポーネントはオブジェクトを作成できません オブジェクトライブラリ ActiveX ・何がしたいのか →テンプレートを使ったデーターベース作成 ・どんな処理を試したか →Access2003、Office2003全体の再インストール ・動作状況など駄目な理由 →データベースウィザードを使用しテンプレートを元にデータベースを 作成しようとすると、途中で 『オブジェクトライブラリは登録されていません』と表示され、「OK」を選択すると 『ActiveXコンポーネントはオブジェクトを作成できません』と表示され、正常に 機能しない。 備考 MOSの試験に向け、勉強するためにACCESS2003を起動して、FOM出版のテキストの最初から解いていこうと したらいきなりつまづき困惑しています。Googleでの検索や教えてgoo等も参考にしましたが、回答者の説明が理解できませんでした・・。 よろしくお願いします
76 :
名無しさん@そうだ選挙にいこう :2007/04/27(金) 17:55:32
>>75 お前、「チントレ」でぐぐって男根おおきくしろや、な
77 :
名無しさん@そうだ選挙にいこう :2007/04/27(金) 18:51:02
チンコの大きさ普通で16ぼっきで21ってでかくねーか?
78 :
名無しさん@そうだ選挙にいこう :2007/04/27(金) 18:51:51
79 :
75 :2007/04/27(金) 21:07:05
息子は平均より大きいとおもいます。 その根拠は友人と銭湯にいくたび陰部について問われることや 風俗嬢にもおっきぃ、と言われます。
>>75 それに遭遇した経験は無いので、テキトーに。
1. Accessはとりあえずフルインスコしたか。Noならフルで。
2. SPはどこまで当てたか。SP2未満ならとりあえず当てろ。
何だよあっちでもこっちでも どいつもこいつも・・・って、まあ同じ香具師らだろうが
82 :
75 :2007/04/27(金) 23:26:53
>>80 回答ありがとうございます。
ですが両方とも確認&実行しましたが、うまくいきませんでした。
もう疲れたので息子と遊んで寝ることにします。
明日以降、この原因解明をしようと思います。
ありがとうございました。
83 :
名無しさん@そうだ選挙にいこう :2007/04/28(土) 01:03:22
今となってはウィザードなんて全然使わなくなったけど、入門時にあるとないとじゃ大違いなんだよな。 発売直後のACCESS95がNT4.0でウィザード全然使えずに困ってた頃の記憶がよみがえる・・・
85 :
80 :2007/04/28(土) 14:18:13
86 :
80 :2007/04/28(土) 23:11:55
>>85 わざわざありがとうございます。
試してみます!
87 :
75 :2007/05/01(火) 11:54:41
>>85 感謝感激、解決しました。
原因はDAOが正しく登録されてなかったようです。以下の作業をすることで
問題が解決しました。
1. Microsoft Windows Terminal Server をホストするコンピュータ、または Microsoft Access がインス トールされているコンピュータで、[スタート] ボタンをクリックし、[ファイル名を指定して実行] をクリッ クします。
2. regsvr32 と入力し、その後に DAO ファイルのパスを入力します。パスは二重引用符で囲みます。た とえば、DAO 3.6 ライブラリを登録するには、次のコマンドを使用します。
regsvr32 "C:\Program Files\Common Files\Microsoft Shared\DAO\DAO360.DLL"
お礼にうちの妹F(ry
88 :
75 :2007/05/01(火) 11:55:54
すいません、変な部分でスペースはいってしまった・・
89 :
名無しさん@そうだ選挙にいこう :2007/05/01(火) 17:32:35
えなりの勃起サイズ23センチだと ビッグニュースだ 負けた orz
90 :
名無しさん@そうだ選挙にいこう :2007/05/02(水) 11:51:40
普通、金玉が大きくてサオが短い細いのはかっこわりーよな
access2000 VBA:使えない コマンドボタンを押下した際にフォントを変化させたいのですが 条件付書式が使えないようなのです。何かいい方法はありませんでしょうか?
2月生まれのあなたはボタンを押したときにフォントの異なる別のフォームを開くといいでしょう。
94 :
名無しさん@そうだ選挙にいこう :2007/05/02(水) 21:48:10
相変わらずソフト板は糞だね
【 システム環境 】 WindowsXP Pro ・ Access2000・2003
SQL Server 2005 Express Edition (Windows認証接続)
【 VBAが使えるか】 いいえ
【 VBAでの回答 】 可(ただし、勉強中につきわかりやすく解説をつけていただけるとありがたいです)
【 検索キーワード 】 リンクテーブル SQLServer
はじめまして。
mdbファイルが読み込まれたときに動的にリンクテーブルを作成する都合が出てきたため、ググって、下記ページを見つけました。
Access 2003 および Access 2002 でリンク テーブル用にSQL Server への DSN レス接続を作成する方法
ttp://support.microsoft.com/kb/892490/ja Autoexecマクロが読み込まれた際に下記モジュールをAutoexecマクロ実行時に読み込ませればよさそうだということまでは理解できました。
ただし、モジュールにする部分のVBAソースを見てみると、認証方法がSQL Server認証を使用している感じを受けます。
もし、そうでしたらWindows認証方法のモジュールに改良するにはどこら辺を変更すればよろしいでしょうか?
教えていただけませんでしょうか?
皆様よろしくお願いいたします。
? 漏れにはユーザー名を省略するだけでWindows認証になるサンプルコードに見えるが。 実際に試したわけじゃないからアレだけど、質問者は試してダメだったのかね?
97 :
名無しさん@そうだ選挙にいこう :2007/05/06(日) 15:44:45
Access 2007を導入予定ですが、位置づけとしては、.mdb=.accdbという理解でいいのでしょうか? もちろん、データ形式が異なることは承知しています。 「位置づけ」の意味は「スタンドアロンでJetを介して使用するアプリケーションで使用する」ということです。 WANでC/Sを構築予定なので当然プロジェクトを使うつもりなのですが、.adpを作成するとタイトルバーに「2000-2003形式」などという不穏な文字が表示されます。 もしかすると、.adpの他にプロジェクト形式の拡張子(もしくはAccessからSQL Serverにアクセスする別のソリューション)があるのでしょうか?
他のOffice製品と違って拡張子が.mdbxにはならないんだよな。 まあXMLのテキスト形式じゃないからなられても困るんだけど
まあエンジンがもはやJetではなくACEだから、.mdbなんちゃらと言われても困る気もする。
101 :
名無しさん@そうだ選挙にいこう :2007/05/06(日) 18:37:58
ACCESS2007は2000-2003形式を使っている場合、そのまま運用する事になる。 もっとも2007で採用機能、例えば添付ファイル形式をデータ型で採用するなら当然.accdb形式で運用する。 また.accdb形式では古いバージョンでは見られない。 それぞれの環境で損得有るんで、どちらが良いと言う問題ではない。
102 :
97 :2007/05/06(日) 21:21:21
>>98 一応レポート。少なくとも明示的には作れません>.accdp
Access2007で(「新規作成」から)作れるのは
・.mdc(2002-2003)
・.mdb(2000)
・.accdb
・.adp
の四つです。
>>100 ですね。まぁ、Jetがそれなりに形になってから数えても既に10年経っているわけですから、確かにそろそろ寿命と言えなくもないですが。
>>101 まぁ、それだけ(2007の新規機能が使えない)なら別にかまわないのですが、ヘルプなどからAccessプロジェクトやアップサイジングウィザード関連の記述がごっそり削除されているのが、どーもキナ臭くて……。
http://www.microsoft.com/japan/sql/solutions/aup/seminar.mspx こんなセミナーもあるので、アップサイジングの方向性そのものはこれからも既定のものとして捉えていいんだろうけど、.adpを使っていいのか、それとも.accdbにそのあたりの機能が統合されているのかが若干心配でね。
そもそもAccess 2007のアップサイジングウィザード動かないし(苦笑)
……いや、「データベース ツール」→「データの移動」→「SQL Server」で「ODBC--呼び出しに失敗しました」とか、初手からのたまってくれるのよ。
多分どっか設定が足りないんだろうけど、調べようにも(上に書いたとおり)ヘルプにそもそも「アップサイジングウィザード」の項目が無いし(^^;
※ちなみに最初から.adpで作ったプロジェクトは動いてるし、ODBC経由の(個別の)リンクテーブルは作れてるので、SQL Serverはちゃんと動いてるハズ。
103 :
97 :2007/05/06(日) 23:01:49
>>102 僅かに誤字。
・.mdc(2002-2003) →・.mdb(2002-2003)
ということで、お詫びと訂正。
104 :
95 :2007/05/07(月) 00:49:43
一応、自己解決しましたが報告。 96さんのご指摘どおり、ユーザー名・パスワード部分の引数を""で囲むとWindows認証になるコードでした。 やっぱり、私には高度なコードでした。修行せねば・・・
105 :
名無しさん@そうだ選挙にいこう :2007/05/07(月) 09:45:37
106 :
名無しさん@そうだ選挙にいこう :2007/05/07(月) 14:32:10
.tinko でも桶
107 :
名無しさん@そうだ選挙にいこう :2007/05/08(火) 17:31:45
どういうタイミングで戻る?
109 :
名無しさん@そうだ選挙にいこう :2007/05/09(水) 02:30:18
>>108 月に1回印刷するのですが
先々月、先月と設定通りに印刷できて、今月ずれました
何が原因なのかはさっぱりわかりません。
110 :
名無しさん@そうだ選挙にいこう :2007/05/09(水) 16:51:48
そか、あともう1年悩め、道が開けてくる
【 システム環境 . 】 WindowsXP, Access2000 【 VBAが使えるか .】 使えない 【 VBAでの回答 】 不可 【 検索キーワード 】 Access & 表示させない レポートのテキストに「&」と言う文字を入れたいのですが アクティブになっているときは入っているのに、 非アクティブ&印刷プレビュー時では消えてしまいます。 表示させる方法はありますか?
112 :
名無しさん@そうだ選挙にいこう :2007/05/11(金) 11:56:39
>>111 「&」を表示したいとこに「&&」としてみよし。
113 :
名無しさん@そうだ選挙にいこう :2007/05/11(金) 12:03:54
VBAっす。 ADOのコネクションに対して execute()メソッドで DELETEや UPDATEのSQL文を実行したとき、 成否ってどーやって受け取れるのん? execute()メソッドの戻り値ってレコードセットだし、 念のため State確認したら当然ゼロだし(閉じてる)、Err.Numberもゼロだしさ。 もしかして無理でしょか?
115 :
名無しさん@そうだ選挙にいこう :2007/05/11(金) 17:13:02
>>114 なるほど ADODB.Errorでトラップできるんね、ありがとん!
と、ちと初回の質問文が不足でした。。
DELETE文や UPDATE文実行で SQL文は正しいけど処理対象データがゼロ件だったときを
トラップしたいのんです。
このときの ADODB.Errorは無い(正しくはコネクションのErrors.Count = 0)でした。。
アクセスはただ単純に数字を組み合わせたりして表やレポートを作るだけなんでしょうか? それともエクセルみたいに四則演算などの計算はできるんですか?
>>117 出来るともいえるし、出来ないともいえる。
ひとついえることは、AccessはExcelの上位ソフトではないと言うこと。
Excel的な考えではじめると、いらん苦労すると思うよ。
まぁ、労を惜しまなければなんとかなるものだが。
ただ、その労力はDB的思考を養うために使った方が
はるかに建設的だよ。
はい
>>117 同じレコード(Excel的に言えばオートフィルタ等が可能な「表」の同一の「行」)内の
項目同士なら四則演算や関数はExcel的な考えでもそれなりに使える。
if関数がiif関数になっていたりとか多少の違いはあるが。
それ以外だと118氏の言う「DB的思考」が必要になる。
個人的には、EXCELでVLOOKUP関数等を多用している人なら
ACCESSの方が融通が利いて便利になると思う
スレチかもしんないけど、ちょっとご意見拝借したい。 Accessがメインの仕事じゃないんだが、SQLサーバと接続とか、 大量のデータ加工とかで普通に使ってる。仕事を楽にするために 自分でDBとかも作る。 で、新規にパートの女の人が入ってきて、仕事を教えなきゃならないんだが 採用したのがまるでPC音痴の団塊なもんで、その人Excelがちょっと使えるくらいらしいのね。 正直、どっからどこまで教えたらいいのか悩んでる。 Excelでだけ処理するには、面倒かつ時間がかかりすぎる仕事なんだよな。 ま、様子を見つつ、とは思ってるけど、Accessってさ、DBとしてはどうとかあるけど >118氏の 「DB的思考」ってのが 問題なんだよね。 この素養とかセンスが無い人に教えるってイジメに近いような気が・・・
>>121 素養育てる方法俺も知りたい。
職場でルーチンワークをExcelでゴチャゴチャ集計してる(そして数字が合わないとか言ってこっちに回す!)
の見てると全員へのデータベースに関する教育が必要だと痛感する。
しかし、クエリの雛形置いとくから弄ってみてね〜ほら便利でしょ〜、って程度では
Excel使いはAccess触ろうとしないorz
まあ完成度100%でない仕事のフォローを他人がしてくれるのが当然、 なんて環境ではいつまで経っても覚えてくれないと思う。
>123 に同意。 語弊はあるかもしらんが、黙って寝ていて生活保護で 14万もらえるヤツが、毎日働いて18万の給料を稼ごうと するか? 日本企業では、何かができるヤツには仕事が集中するが、 給料は大して変わらない。何かができるだけソンなことを みんな知っている。 だから振り先が無くなって、やらないと火の粉が自分に 降りかかってでもこない限り、誰も覚えないよ。
125 :
名無しさん@そうだ選挙にいこう :2007/05/16(水) 13:23:58
txtデータのインポートでExcel VBAにあるようなRowStart(取り込み開始行)の指定はどうやってやるのですか? 実データが8行目からなんです
そういうのは桐だと簡単だよな
>>125 別TBLにインポートしてからTBLを併合しれ。
桐ならもっと簡単だが。
>>125 どんな状況でも8行目からなのか注意してね〜。
【 システム環境 . 】 WindowsVista&, Access2007 【 VBAが使えるか .】 いいえ 【 VBAでの回答 】 不可 【 検索キーワード 】 アクセス リレーション まったくの初心者です。リレーションが機能しません。ルックアップからなら、データが反映できるので すが、リレーションシップを作成しても、▽が出てきません。 一応、参考書みてやってるのですが・・・ 基本データが右(リレーションテーブル)で、その基本データの内訳が左ですよね? なんか質問もろくにできないのですが、よろしくお願いします。
メモ帳で開いて7行目まで削除しる
>>130 リレーションで出るのは+だったと思うが。
右も左も関係ないんじゃないか。
マスターが多いと左右におくだろ。
で、結局なにがしたいんだ?
>>132 え〜とですね・・・
学部 学科 学年
っていうフィールドがあって、別にテーブルを作ってで文学部、工学部、医学部などをコンボボックス
形式?▽で選択できるようにしたいのです。
ルックアップだとできるのですが、リレーションで線で結んでも反映されません。
う〜ん・・・この説明でわかりますか?
>>133 あゝ、すまん。2007か。
2002までだと、リレーションしただけではそうはならないよ。
ルックアップ列はウィザード使うなり、自分で設定するなりしていた。
2007だとリレーションしただけでルックアップ列になるのか?
>>134 そう、そこです。
と言っても、自分は超初心者なので、詳しくはわかりませんが、リレーションしただけでは、ルックアップには
なりません。
リレーションをして、ルックアップと同じように反映させたいのです。
>>130 > すが、リレーションシップを作成しても、▽が出てきません。
> 一応、参考書みてやってるのですが・・・
参考書に、リレーションシップを作成すると▽が出ると書いてあるのか??
> 【 検索キーワード 】 アクセス リレーション
検索キーワードは、ドロップダウンリスト とか リストボックス とかにしろ
>>134 MSのヘルプ見てきたが、ルックアップウィザードを使うことにより
インデックスとリレーションは作成されるが
その逆はないみたいだよ。
成績証明書までの道のりは遠そうだなw
140 :
名無しさん@そうだ選挙にいこう :2007/05/17(木) 09:34:09
コンボとColmnで充分。作ってやってもいいぞ。有料で。笑
141 :
名無しさん@そうだ選挙にいこう :2007/05/18(金) 08:55:21
お世話になります 【 システム環境 . 】 WindowsXP, Access2003 【 VBAが使えるか .】 はい 【 VBAでの回答 】 可 【 検索キーワード 】 & SQL AccessでのSQL文でエラーが起こり困っています。 Table1の2つの値(列名はa1,a2で数値型)の間に-(ハイフン)をつけて Table2にa1-a2という形で入力したいと考えているのですが (前略) strSQL = "Insert Tabl2(a3) strSQL = strSQL + "Select Table1:a1" & "-" & "Table1:a2" strSQL = strSQL + "From Table1" (後略) とするとTable2に入力される値がa1-a2の数値となってしまいます。 どうすれば-(ハイフン)で繋げることができるでしょうか? 宜しくお願いします。
>>142 1行目
Insert → その後のINTOがない
Tabl2 → Table2のこと?
(a3) → 最後はダブルクォートで閉じれ
2行目
Select → 前にスペースついてないから1行目とぴったりくっついてSQLとして解釈できん
Table1:a1 → テーブル名とフィールド名の区切りはコロンじゃなくてカンマ使え
Table1:a2 → 同上
3行目
From → 2行目と同じでスペース付けれ
そしてポイントは2行目の "Select Table1:a1" & "-" & "Table1:a2" の部分。
これを評価すると "Select Table1:a1-Table1:a2" になるから
a1マイナスa2の演算がされるのは当たり前(コロンが謎だが・・・)
-(ハイフン)をSQL中の文字列として渡したいのなら
" Select Table1.a1 & '-' & Table1.a2" とするのが正解。
>>143 記憶が曖昧で色々違ってたのにも関わらず
ご指摘ありがとうございます。
Oracle単体でのSQL文は理解できるのですが
Accessや他言語でのSQL文を記載するのに
&や"を加えるとわけが分からなくなるんです。
何はともあれ、回答ありがとうございました。
145 :
140 :2007/05/19(土) 09:08:30
>>141 500円じゃ無理だな。
今、貧乏で即金欲しいから思いっきりディスカウントしてもいいけど。
半分、マジで期待してたりして。(笑)
【 システム環境 . 】 Windows2000&XP, Access2000 【 VBAが使えるか .】 若干 【 VBAでの回答 】 可。でもできればマクロで・・・ 【 検索キーワード 】 Excelシートインポート 1、インポートにかなり時間がかかるので、処理中であることを表すために 作業中。。。。。。。。みたいな作業の進行状態を見れるようにしたいのです。 ネットで大きな画像を読むときに、棒線がじりじり長くなっていくような奴です。 2、インポートするシートのパスをエクスプローラーで階層をたどるみたいにして 指定できるようにしたいのです。エクスポートするときはマクロのプロパティに パスを書かなければ、MyDocumentがエクスポート先にえらばれますよね? そんなかんじにできないでしょうか。 よろしくお願いします。
また来たよコイツ・・・
>>146 両方とも可能だが、「できればマクロで・・・」と書いている時点で
たぶんムリ。まあAccess 2007のマクロならどうか知らんけど。
150 :
146 :2007/05/20(日) 08:06:23
すいません。 初めての質問なんですけど 「また来た」呼ばわりされるってことは かなり初歩的な質問をしてしまったってことですね。 もうしわけない。 参考書かサイトかなにかを紹介していただけたらありがたいのですが・・・
153 :
146 :2007/05/20(日) 09:01:01
ありがとう!
154 :
名無しさん@そうだ選挙にいこう :2007/05/21(月) 15:01:32
VBAで十進型の項目を作りたいんだけど、できる? CreateFieldメソッド使ってできるかも、って挑戦してみたけどできないんよね。。 CREATE TABLEのSQL文でも無理だた。。 (単精度や倍精度使いたくないんす。)
>154 FieldのTypeプロパティに「dbDecimal」を指定しても駄目なん?
>>154 ADO経由ならCreate Tableで出来るよ。
モジュールで使うSQL文でWhere句の中に変数を入れたいと考えています。 Dim str_SQL Dim hennsuu (中略) str_SQL = str_SQL & " Where T_DB.項目名1 = " & hennsuu & " And T_DB.項目名2 Is Null " とするとエラーになってしまうんですがどうすればいいのでしょうか? 宜しくお願い致します。
hennsuu = """" & hennsuu & """"
>>158 Is Nullではなく""で記述し、
それをさらに""で囲むから""""になるってことですか
ちなみに前半部の" & hennsuu & "はこのままでいいのでしょうか
>>157 T_DB.項目名1のデータ型は?
略したところ(str_SQL)に問題があったなんてコテコテのオチは
やめてくんれよ。
あと、Is Nullのあとのスペースもキモい。
>>160 テキスト型です
そのwhere句を追加したらエラーになったので
そのオチはないです
>>157 Where T_DB.項目名1 = '" & hennsuu & "' And
162の補足 これで駄目だったらCstrでhennsuuを型変換。 158氏は多分同じことを言っていると思う。 まぁ、無闇にVariant型は使うなと言うことだ。
165 :
154 :2007/05/22(火) 09:14:06
>>155 うん、「dbDecimal」ダメだた。。
>>156 わー、謎が解けたっ! ADO経由ね!! DoCmd.RunSQLメソッドで実行してたよ。。
ADO経由で「DECIMAL」型の項目作れた〜
とってもありがとん!!
極めて初歩的な質問なんですけど サーバー側のODBCデータソースアドミニストレーターで設定をしてデータベースに接続する方法と エクセルとかでVBAのMSADOライブラリを使ってデータベースに接続する方法、どっちがいいんでしょうか それぞれ利点等教えてください
ADOからODBCプロバイダ経由で接続、という方法もあるので、 レイヤー違いでそもそも比較になりません。 いったい何のためにそんな質問をしているのか、目的を明らかに した方が適切な意見を得られやすいのでは。
フォームヘッダから詳細へタブで移動することは出来ないの? いちいちマウスを持ちかえるのが面倒です。
F6キーじゃ不満か? Tabじゃないとイヤなのか?
マウスを2つつなげて普通に使う用とヘッダから詳細へ移動用と使いわければ いちいちマウスを持ちかえなくてすむよ
持ち変えなきゃダメだろ 両手で持っているのか??
>>172 うまくいきませんでした。
業務用ソフトでサブフォームがやたらといくつもある奴なんですけど、サブフォーム間の移動ってどうすればいいのでしょうかね?
教えて下さい、1から100迄の数値の内、 5以下の数値を含むレコードを抽出したいのですが、 抽出条件に<5と入力すると、49以下が抽出されてしまいます。
>>176 テーブル定義とデータ内容、
ACCESSのバージョン晒せ。
178 :
176 :2007/06/04(月) 13:34:42
>>177 定義、データー内容と言われたところで気づきました、
数値が入っているフィールドがメモ型でした;
ありがとうございました。
レポートでプリンタアイコンをクリックすると「印刷」というダイアローグが出ないで直接プリントできますよね。 それと同じことをマクロかVBAでできますか?
182 :
名無しさん@そうだ選挙にいこう :2007/06/08(金) 17:17:17
183 :
名無しさん@そうだ選挙にいこう :2007/06/08(金) 17:48:10
ばりばりの桐の現役ユーザです 8ユーザ(同時使用)程度で販売管理システムを組んでます 今後ユーザが20人程度に増えるにあたり 速度的なものや安全性で限界を感じています 何かに乗り換えようと探しています どの組み合わせがいいでしょうか
184 :
名無しさん@そうだ選挙にいこう :2007/06/08(金) 18:26:14
>>183 8ユーザ(同時使用)はAccess じゃ無理
金払って専門業者に頼め
>>181 PrintOut メソッド?
頑張ってみます。
8ユーザ(同時使用)ともなると最適なソリューションは・・・ 桐しかないだろ
>>186 だから
今、8ユーザーで桐使ってて
20に増えるからこまってるんだよ。
おれは素人だから何がいいかわからん。
すまそ。
セブンイレブンのPOSレジが良いと思うよ。
189 :
183 :2007/06/09(土) 07:01:55
183です 全くの門外漢なので想像なのですが MSDE+ACCESS+VBA ならいいのかなぁと思っているのですが 移行させていくにあたり、勉強を始めていくのに 大きな方向性を探りたくて・・・よろしくお願いします ちなみに、今は8ユーザ使用中です 売上処理や入金処理がメインなので最大負荷はそれほどでも ないと思います。ワークファイルに入力→[登録]ボタンで正テーブル に書き込みとしていますので、登録処理がかぶった時が負荷がかかります エクセルに限界感じた人はACCESSに行くと思います ACCESSに限界感じた人はどうするのでしょうか?
>>189 > MSDE+ACCESS+VBA
まぁ、方向性としては悪くないと思うよ。
191 :
名無しさん@そうだ選挙にいこう :2007/06/09(土) 08:30:59
MSDE、8ユーザーでも全然無理
>>189 で、20に増えるんでしょ?
そこ大事じゃね?
193 :
183 :2007/06/09(土) 12:14:31
>>192 10程度でもいいです
業務分割といった方法も考えますので
195 :
名無しさん@そうだ選挙にいこう :2007/06/09(土) 13:07:24
>>181 ヒントをくれ!ググッても全然ヒットしないんだよ!
196 :
名無しさん@そうだ選挙にいこう :2007/06/09(土) 13:21:03
SQL Server 2005 Express Edition でいいんじゃない?
197 :
181 :2007/06/09(土) 14:02:03
>>195 何故ググる必要があるんだ。Accessのヘルプで充分じゃないか。
Access2000なら、ヘルプの質問のところに印刷と入力して検索す
ると、レポートをフォームから印刷するってトピックが出てくる。
常にフォームからって必要はないんだから、マクロやVBAを要件
にあった使い方に変えればいいだけじゃないか。
>>193 最初の8ユーザーにかなり近づいてきてないか?w
199 :
名無しさん@そうだ選挙にいこう :2007/06/10(日) 12:21:28
Accessくらいで何威張ってるの? ここの住人てマジ知的障害者だな、死ね
Accessの同時使用は2人が理想、多くて3人までです。
だから、小企業は桐にしとけ 大企業はオラクル
202 :
183 :2007/06/10(日) 13:31:06
>>198 そうですねw 10でバリバリ処理できれば
それから多少増えてもいいかなと思いまして
オラクルってそれだけではシステム組めるんですか?
フロントエンドには何を使うのですか?
>>202 フロントエンドにAccessを使うことも可能です。
オラクルにODBCでリンク張って作ってみたことあるけど 接続タイムアウト連発で正直使い物にならんかった
AccessからならSQLServerの方が幸せ。
>>204 ACCESS + OracleでODBCリンクテーブルは鬼門。
ネットワーク上に無駄なデータ流れすぎ。
207 :
名無しさん@そうだ選挙にいこう :2007/06/12(火) 09:22:23
Accessくらいで、しかもPGで威張ってるな、うんこ製造機ども
208 :
名無しさん@そうだ選挙にいこう :2007/06/12(火) 13:16:11
UNKO
>>206 それってソースある?
今後のために調べておきたい。
ソース、と言われてもなぁ。 ODBCトレースとかパケットキャプチャしてみれば より具体的に分かると思うよ。
211 :
名無しさん@そうだ選挙にいこう :2007/06/14(木) 16:02:42
ダブルクリックイベントを発生させる方法ってありますか? ヘルプを探したんですけど、分からなくて。。。 sendkeysみたいな方法で出来ませんか?
214 :
名無しさん@そうだ選挙にいこう :2007/06/14(木) 17:40:18
>>213 あ、何か勘違いしてました。すみません。
フォームのイべントと間違えた・・・
216 :
名無しさん@そうだ選挙にいこう :2007/06/15(金) 13:14:55
うんこを使う
217 :
名無しさん@そうだ選挙にいこう :2007/06/15(金) 13:20:51
スカトロマニア キタ━━━━━━━━━(゚∀゚)━━━━━━━━━ !!!!!
218 :
名無しさん@そうだ選挙にいこう :2007/06/15(金) 22:58:44
219 :
名無しさん@そうだ選挙にいこう :2007/06/16(土) 11:09:10
ビチャビチャうんこビチャビチャうんこ
220 :
名無しさん@そうだ選挙にいこう :2007/06/16(土) 16:37:59
すみません。 ACCESS2000のプログラムをランタイムで配布したいのですが、 現在ACCESS2003のランタイムを「VisualStudio2005ProMSDN」 を購入する事によって配布できるそうです。 しかしWindows98で使用することありACCESS2002のランタイム を配布したいのですが、何か方法はありますでしょうか? 上記の方法でダウングレードが出来るのでしょうか? 教えてください。
>>220 たしか2007からはランタイムは只になった。
なので、俺は2000からいきなり2007に移行しようかと考えている。
もう少し2007の評判を聞いてからにするけどな。
222 :
名無しさん@そうだ選挙にいこう :2007/06/17(日) 08:55:57
223 :
名無しさん@そうだ選挙にいこう :2007/06/18(月) 17:46:17
【 システム環境 . 】 Windows98, Access2000 【 VBAが使えるか .】 いいえ 【 VBAでの回答 】 否 【 検索キーワード 】 アクセス SQL REPLACE 等 アクセスでREPLACE関数を使いたいのですがうまくいきません。 オラクルよりデータを引き抜き、それをエクセルに出すと−が? になってしまうため、一度アクセスにて−を-に置換するように したいのです。 更新クエリにて UPDATE テーブル SET フィールド =REPLACE([フィールド],'−','-'); など色々試していますが未定義エラーになってしまいます。 よろしければ教えて下さいm_m
>>224 横レスだが、これは知らなかった。いつもユーザ関数にして使ってた。
access2002です。 今日、突然ヘルプが巨大化してしまいました。 余白が異常に大きく、本文の回りがほとんどグレーの領域になりました。 たまたまマルチディスプレーだったから気がつきましたが、シングルディスプレーだと一面グレーの状態です。 accessの修復、accessの再起動では治りませんでした。解決方法御存知の方御願いします。
227 :
名無しさん@そうだ選挙にいこう :2007/06/19(火) 22:49:44
access2002 はサポート終了しています。 MSにお布施して2007をご使用ください。
228 :
sage :2007/06/20(水) 09:54:22
access+odbc+mysqlの環境で、mysqlのフィールドを「longblob」にして BMP画像をOLEオブジェクトに貼り付けて登録してるんですが、 なぜかBMP画像が同じファイルサイズ(30KBぐらい)でも16色以上だと表示 できません。 Initial StatementはSET CHARACTER SET BINARYにしています。 myODBC側の問題のようで微妙にスレ違いのような気がしますが、ご存知の方 いませんでしょうか?
>>221 Access2007用のVSTOが必要なんだけど、これまだリリースされてないのでは?
>>229 うん、そうだけどもうそろそろリリースされるはず。
>>226 それAccessだけなの?
ヘルプファイル(ACMAIN10.chm)直接叩いても同じ?
>>231 ヘルプファイルだけですね。
win2kを再起動したら治りましたので、証拠集めが出来なくなりました・・・
興味を持っていただいてありがとう御座いました。
ウンコヘルプ ウンコヘルプ ウンコヘルプ ウンコヘルプ ウンコヘルプ ビチビチウンコ ビチビチウンコ ビチビチウンコ ビチビチウンコ ビチビチウンコ ビチビチウンコ ビチビチウンコ ビチビチウンコ ビチビチウンコ ビチビチウンコ ビチビチウンコ ビチビチウンコ ビチビチウンコ ビチビチウンコ ビチビチウンコ ビチビチウンコ ビチビチウンコ ビチビチウンコ ビチビチウンコ ビチビチウンコ ビチビチウンコ ビチビチウンコ ビチビチウンコ ビチビチウンコ ビチビチウンコ ビチビチウンコ ビチビチウンコ ビチビチウンコ ビチビチウンコ ビチビチウンコ ビチビチウンコ ビチビチウンコ ビチビチウンコ ビチビチウンコ ビチビチウンコ ビチビチウンコ ビチビチウンコ ビチビチウンコ ビチビチウンコ ビチビチウンコ
234 :
名無しさん@そうだ選挙にいこう :2007/06/22(金) 14:49:41
スカトロマニア キタ━━━━━━━━━(゚∀゚)━━━━━━━━━ !!!!!
うるせーよビッチ!!
ベタに残業時間などを処理してみようと思ったのですが、 Accessの時間型は、24:00以降は処理出来ないのですね。 Accessでは、24時以降の処理は、どうするのが一般的ですか?
237 :
名無しさん@そうだ選挙にいこう :2007/06/22(金) 21:38:40
素直に桐にしときなさい
オレの使ってるAccessは24:00以降もふつうに処理できているけどな。 24:00以後9000年くらいまで大丈夫。
本当の日付日時を事実通りに記録しろ。 今日の25時まで残業したら退社日時は "2007/06/22 25:00:00" じゃなくて "2007/06/23 01:00:00" を登録する。 そして定時が5時なら "2007/06/22 17:00:00" との差をDateDiff()関数で求める。
240 :
名無しさん@そうだ選挙にいこう :2007/06/23(土) 13:44:12
フィールド移動時の動作について質問です。 普段は、オプション→キーボードタブ→フィールド移動時の動作で「フィールドの最後に移動」を設定しています。 ただ、1つだけ、「フィールド全体を選択」で運用したいコントロールがありますが、どのように設定すれば可能でしょうか?
241 :
名無しさん@そうだ選挙にいこう :2007/06/23(土) 13:48:11
イベント、キー送信コマンドで「フィールド全体を選択」するキー操作を送信する ただ、Access はそこまで作り込まない方が良いよ
>>240 フォーカス取得時イベントか、その辺で。
Private Sub txt1_Enter()
txt1.SelStart = 0
txt1.SelLength = Len(txt1)
End Sub
【 システム環境 . 】 WindowsXP, Access2007 【 VBAが使えるか .】 はい 【 検索キーワード 】 access dropdown GoToControl フォームでのことなんですが、コンボボックスについて「フォーカス取得時」 Me!○○.Dropudown としていて通常通り動くんですが、 条件付きで DoCmd.GoToControl "○○" で、移動してきた場合だけDropdownしないんですが 何か解決方法はありますか? 「間違いなくフォーカス取得時」のイベントになっていて、DoCmd.GoToControlはフォーカスを移動する とヘルプには書いてあるのですが…。 ご教示願います。
SetFocusメソッドに変えてみるとか。 それでダメなら教えてくれ。 2007にアップグレードしなかったことを自分に感謝するから。
245 :
243 :2007/06/24(日) 18:08:24
ありがとう。 DoCmd.GoToControl "○○" を、 Me!○○.SetFocus にしても同じだった。 やっぱりドロップダウンしない。 アップグレードした俺の馬鹿!???
MS相手取って、告訴。これ。
247 :
243 :2007/06/24(日) 18:55:05
.Dropdownを出すタイミングがダメっぽいね。 目的によっては無理かもしれないけど、イベントトリガーを 元コントロールのExitやAfterUpdateにしてみるとどう?
249 :
名無しさん@そうだ選挙にいこう :2007/06/24(日) 19:14:44
【 システム環境 . 】 WindowsXP, Access2000 【 VBAが使えるか .】 はい 【 VBAでの回答 】 可 設計の問題としてご意見ください。 幅のある年の間で、特定の年の状態を抽出する方法というものを考えています。 例えばですが、 野球選手のAは1999年にヤクルトに入団、2005年に巨人に移籍、2007年に引退 Bは1995年に西武に入団、2003年に阪神移籍、2005年に巨人に移籍 Cは2000年にオリックス入団、2006年巨人に移籍 このようなデータがあり、テーブルにまず選手名、 もう一つのテーブルにチームと入った年(「加入年」)、出て行った年(「移籍年」) (A選手なら西武/1995/2004、巨人/2005/2007)という感じで入力していき、 リレーションシップでつなぎました。 この状態で、例えば「2005年は誰がどの球団にいるか」というのが出てくるフォームが作りたいのです。 クエリなら、「加入年」と「移籍年」に「<=2005」「>=2005」とする事で2005年の状態が出てきますが フォームでテキストボックスを作り、「2005」と数字を入力すれば A選手/巨人/2005/2007 B選手/巨人/2005 C選手/オリックス/2000/2006 と出てくる、こんな感じにしたいのです。 そもそも設計の段階で間違っているのかなあという気もしないでもないですが 何か妙案がありましたらよろしくお願いします。
250 :
243 :2007/06/24(日) 19:22:31
>>248 えーとよくわからないのですが
AAAというテキストボックスに 1 が入力されている場合 BBB のテキストボックスを
入力後 CCC のテキストボックス入力を飛ばして ○○というコンボボックスをドロップダウンする。
AAAが 1 以外の場合、BBB CCC → ○○ と移動する。
こういう処理で、CCCのフォーカス取得時のイベントに AAA=1 の場合に DoCmd.GoToControl "○○"
と書いているわけです。まぁ、BBBの更新後処理に入れても同じでした。
いずれにしても元コントロールのExitやAfterUpdateをイベントとリーガーにはできない感じです。
タグオーダー通りに進めばドロップダウンするので、ダミーのテキストボックスを一つつくってなにも
入力せずにエンターを押せば問題なく動くのですが(テスト済み)かっこ悪いですよね。
251 :
名無しさん@そうだ選挙にいこう :2007/06/24(日) 19:31:57
>>249 一番簡単な方法は、テーブルを二つ作り
1、球団名テーブル・・・ID・球団名の2列
2、選手テーブル・・・ID・選手名・2000年在籍球団・2001年在籍球団・2002・・・・2030年在籍球団
という長いテーブルをつくる。
252 :
名無しさん@そうだ選挙にいこう :2007/06/24(日) 19:39:35
テーブルは、 [ID]、[年]、[選手名]、[移籍(入団)先球団名] 後は、 クエリ、フォームで頑張って工夫する これが基本です。
>>250 飛ばす側でDropdownさせてはいかんのか?
シーズン中にも電撃トレードはあるけどその場合の年度はどうするの?
255 :
253 :2007/06/24(日) 20:40:49
連投で悪いけど、既定のタブオーダーが「AAA→BBB→CCC→コンボボックス」 だとしたら、別にフォーカス飛ばさなくても単に Private Sub AAA_LostFocus() Me!CCC.TabStop = Nz(Me!AAA) <> 1 End Sub でいいかもとオモタ
256 :
名無しさん@そうだ選挙にいこう :2007/06/24(日) 20:51:59
>>254 すんません、説明が長すぎになってしまうので
単純化させた例えを書いただけですm(__)m
実際は「閏月」を含む100年単位のデータなので
量的にも
>>251 も毎年入力というのは現実的じゃないんですよね・・・
>>252 のでいいと思うけど(自分は252じゃないが)。
なんか問題あるのか?
【 システム環境 . 】 WindowsXP, Access2000 【 VBAが使えるか .】 はい 現在、業務で指示書はWORD文書、履歴はEXCEL文書を使用しています。 それぞれの文書に作業名やファイルパスなどを手入力するのが大変なので、なんとか自動化したいと考えているのですが、ACCESSを核にしてWORD、EXCELを操るなんてことが可能なのでしょうか。
>>250 いやだからその例ならコレで目的は達成出来るんでないの?
Private Sub BBB_Exit(Cancel As Integer)
If Me.AAA = 1 Then
Me.○○.SetFocus
Me.○○.Dropdown
End If
End Sub
>>258 CreateObjectの説明とか見てみると良いかも。
でもAccessからアプリケーションを制御するのはあまり好きではないな。
260 :
名無しさん@そうだ選挙にいこう :2007/06/24(日) 21:24:44
>>257 >>252 は例えば2005年の状態を打ち込むって事ですよね?
元データが人物を単位としたデータ、つまり
「Aさんは○○年にどこにいて○○年にどこどこに移った」というデータなので
入力段階でフォーマットが違うんですよ
派遣社員の派遣先管理とか、そういう用途なのか・・・?だったら 1社員1レコードの社員テーブル 1派遣先1レコードの派遣先テーブル どの社員がどの派遣先にどの期間だけ派遣されるかの派遣契約テーブル この3つに分けて管理するのが基本だと思う。
262 :
名無しさん@そうだ選挙にいこう :2007/06/24(日) 22:21:41
263 :
名無しさん@そうだ選挙にいこう :2007/06/24(日) 22:24:52
>>260 > 「Aさんは2000年に巨人に入団、2006年に阪神に移籍」というデータなので
2000,A,巨人
2006,A,阪神
2002,B,ロッテ
1996,C,ダイエー
2005,B,西部
264 :
名無しさん@そうだ選挙にいこう :2007/06/24(日) 22:43:14
すんません、
>>252 は最初は
>>263 みたいに入力するのかなと最初思ったんですが
それでだとわからないので、
>>251 みたいに入力しろと
>>252 は言っておられるのかなと思って
>>260 みたいな解釈になったんっす
>>263 だと、たとえば2003年の状態を知りたい時に
Aに関しては「2000」と「2006」しか情報入力されてませんよね?
実際は
A 巨人 2000〜2005
A 阪神 2006〜
B ロッテ 2002〜2004
B 西武 2005〜
C ダイエー 1996〜
っていう幅のあるデータなので、
>>263 のように入力したときに
その幅のあるデータの中をどうフォームで1回の入力で
抽出するかそれがわからないんです
265 :
名無しさん@そうだ選挙にいこう :2007/06/24(日) 22:53:01
>>264 基本は
>>252 だよ
[選手名:A]でフィルタ掛けて、[年]<<2003 とし、その最大年をとれば、[球団名:巨人]と出るだろ
それをスマートに行なう方法を頑張って考えろ
266 :
257 :2007/06/24(日) 22:56:59
カブるけど。
>>260 > 入力段階でフォーマットが違うんですよ
入力フォーマットとテーブル構造と出力フォーマットは
必ずしも合わせる必要はない。
一緒なら話は早いが、一緒じゃなくても適切にマッピング
すればいいだけ。
そもそも、だからこそ >249 で設計がどうこう言い出したん
じゃないのか?
野球選手を例に出してるから、言いだしっぺもワケ分かんなく
なってるのかもしれないが、これが商品の入出庫だったら
「商品Aが○○年に入庫して××年に出庫した」なんて在庫期間
情報を1レコードで格納するのは、決して一般的とは言えないだろ?
入庫で1レコード、出庫で1レコードが基本。
遷移後の状態をその時点で記録すれば、途中経過は取れる。
>263 が親切に書いてくれたように、
> 2000,A,巨人
> 2006,A,阪神
でいいのだ。
2004年時点の状態が欲しかったら、<=2004で抽出して、選手名で
グループ化した最大年度(Max)を取ればいい。そのレコードが
2004年時点のステータスになる。
>251 のは正規化をあきらめた状態で、設計のあり方を論じている
ときには意味がないけど、現場ではそうするしかない場合もあるので
別に否定しない。ただ煮詰まってそうなっちゃいましたってのは
しょうがないと思うけど、いきなりそこ行くのは早えーよw
267 :
名無しさん@そうだ選挙にいこう :2007/06/25(月) 01:04:21
Access2000です。 すごく基本的なことなんですが… フィールドサイズはMDBのファイルサイズに関係あるんでしょうか? テキスト型でサイズを10にしたものと255にしたものの 2種類のデータベースを作ってみましたが、ファイルサイズは同じでした。 それぞれを最適化して比べてもやはり同じでした。 Accessのフィールドサイズには、単に入力制限の意味しかないんでしょうか?
データ入れてってみたら。
>>258 できる。OLEオートメーションを勉強しる。
ユーたちaccess2007使っちゃいなよ。 サイコーだよ
271 :
名無しさん@そうだ選挙にいこう :2007/06/25(月) 20:09:19
2007はパーソナルな製品 住所録作成用途
273 :
249 :2007/06/25(月) 20:14:43
お手数おかけして申し訳ありませんm(__)m
>>265-266 を参考にさせていただき、
あとの入力を考えて、「IDと選手名のテーブル」と
「IDと選手番号とチーム名と加入年」のテーブルを作って
前者のIDと後者の選手番号をリレーションシップで連結、
その上でクエリで「加入年、選手名、チーム名」と並べてみました。
その上で、
>2004年時点の状態が欲しかったら、<=2004で抽出して、選手名で
>グループ化した最大年度(Max)を取ればいい。そのレコードが
>2004年時点のステータスになる。
との事なので加入年の抽出条件で「<=2004」を入力すると
この段階では選手名の重複が起きますよね。
ここで、「選手名でグループ化した最大年度(Max)を取ればいい」は
「Σ」を押して「集計」を表示させた上で「グループ化」を選択するということでしょうか?
あやしいのは「最大」かな?と思っていじっていますがうまくいきません。
目指すところに近かったのは、「集計」を「最小」にし、
なおかつ「チーム名」を削って「選手名」と「加入年」だけにすると
目指しているところである「選手名が一つだけ」になりました。
もちろん、これだと「加入年」が一番早い年になり意味ありませんが、
逆に「最大」にすると、リストが一つも表示されませんでした。
(「>」「<」と「最大」「最小」を逆にしても一緒でした)
「選手名でグループ化した最大年度(Max)を取ればいい」の部分について
自分は何か根本的に勘違いしているようですね間違っているようですね。
もう一度ご教授お願い出来ませんでしょうか。
>>270 主キー以外のオートナンバー型フィールドをnullで更新できる上に、
その状態で最適化すると全レコードが吹っ飛んだり、レポートの
開く時イベントでテキストボックスのコントロールソースをセットすると
強制終了するようなバージョンを普及させるのは、大変でしょうね。
宣伝乙。
275 :
名無しさん@そうだ選挙にいこう :2007/06/25(月) 20:21:57
>>273 入団年、退団年フィールドを持つ、とかじゃだめなの?
>>273 SELECT
T選手.*,
T在籍.チーム名
FROM
T選手,
T在籍,
(SELECT
T在籍.選手番号,
Max(T在籍.加入年) AS 加入年の最大
FROM
T在籍
WHERE
T在籍.加入年<=[何年?]
GROUP BY T在籍.選手番号
) as T1
WHERE
T選手.選手番号=T1.選手番号 And
T選手.選手番号=T在籍.選手番号 AND
T在籍.加入年=T1.加入年の最大;
278 :
名無しさん@そうだ選挙にいこう :2007/06/25(月) 21:35:53
279 :
名無しさん@そうだ選挙にいこう :2007/06/25(月) 21:41:03
>>272 ありがとうございます。
可変長とか固定長とかよく知りませんでした。
Accessのテキスト型では可変長しか存在しないんでしょうか?
だとすると、常に255のサイズを確保しておいた方が何かと便利
ということになるんでしょうか?
Accessで直接作業するわけではなくて、Webアクセスで
ASP+Jetエンジンで使おうと思っています。
281 :
名無しさん@そうだ選挙にいこう :2007/06/25(月) 21:51:03
>>279 255で定義したら必ず255の長さを占有して無駄だから可変長にする方法はないのか?
という質問ならまだ理解できるんだけど、実際にはそうじゃないし・・・
逆に聞きたいんだけど、なんで固定長で定義する方法にこだわるの?
283 :
258 :2007/06/25(月) 22:26:06
追加質問です。すみません VBAでアプリケーション操作せずに、参照で勝手に値が入るなんてことは可能でしょうか? エクセルで他のセルの値を参照するみたいなイメージで、 EXCELやワードで作業番号(主キー)を記入したらACCESSの中から必要な情報が勝手に出てくるみたいなことです
284 :
272 :2007/06/25(月) 22:42:30
>>279 > Accessのテキスト型では可変長しか存在しないんでしょうか?
いえ。固定長も存在します(Accessに、というよりJetに、ですが)。
ただテーブルのデザインビューから選んで作れるのは可変長だけです。
固定長テキスト型フィールドを作りたい場合は、SQL文を流す必要が
あるので、一部の開発者を除き一般ユーザーにはなじみが薄い型では
ないかと思われます。
> だとすると、常に255のサイズを確保しておいた方が何かと便利
> ということになるんでしょうか?
それは考え方次第なので、何とも。
入力桁数を制限できるから必要最小限のサイズにした方がいい
という人もいるでしょうし、軽量化に貢献しないなら目一杯
取っといた方がラクじゃんと考える人もいるでしょうし。
>>283 ExcelからAccessに接続するだけじゃん。もちろん可能。
>>282 書き方が悪かったようですが、ファイルサイズが同じになるなら
固定長で定義しようとは思っていません。
調べてみても、可変長の方が速くて長さも自動的に拡張されるので
便利というふうに書いてありましたし…。
>>272 さんの解釈で合ってます。
>>284 なるほど。よく分かりました。
ありがとうございました。
どなたかヒントでも良いので教えてください。
QRコードを印刷しよう思い、
ttp://www.bbjapan.com/~yutaka/useful/QRCODE/ のDLLを利用させてもらって以下のようにしてクリップボードへ画像を入れたのですが
Private Declare Function MakeQR Lib "QRCODE.dll" _
(ByVal Version As Long, _
ByVal ErrorLevel As Long, _
ByVal Magnify As Long, _
ByVal BD As String) As Long ' Version=QRコードの大きさ(1-40), ErrorLevel=1-4, magnify=倍率, BD=data
Private Sub printQrCode()
Dim rc As Long
rc = MakeQR(3, 2, 2, "test") ' MakeQRでQRコードがクリップボードに入る。
このあとこのクリップボードの画像をole(でいいよね)へコピーするには
どうすればよいでしょう?
288 :
243 :2007/06/26(火) 18:18:19
>>259 さんの
If Me.AAA = 1 Then
Me.○○.SetFocus
Me.○○.Dropdown
End If
End Sub
は、「コントロールがフォーカスを取得していない」ので実行時エラー2185がでます。
AccessをWebアプリケーションで使いたいんですが、 Jet4.0の最大ユーザー数が255というのはどういうことなんでしょうか? 255というのは何の数なんでしょうか? 最大ユーザー数をプログラム側でコントロールするには、 同時に開くConnectionオブジェクトの数を制限すればいいんでしょうか?
255厨乙 こりゃ先が長そうだ・・・
>>255 >288 で華麗にスルーされたようだw
255厨って?
>>288 Private Sub BBB_AfterUpdate
If Me.AAA = 1 Then
Me.○○.SetFocus
End If
Exit Sub
Private sub ○○_Enter
If Me.AAA = 1 Then
Me.○○.Dropdown
End If
End Sub
でもだめ?
294 :
名無しさん@そうだ選挙にいこう :2007/06/27(水) 17:59:00
>>293 それだといけます。
まぁ実際はどちらにしてもドロップダウンしたいので
Private sub ○○_Enter
If Me.AAA = 1 Then
Me.○○.Dropdown
Else Me.○○.Dropdown
End If
End Sub
という、わけワカメなんですがんですが・・・。
PGなんかビチビチウンチ PGなんかビチビチウンチ PGなんかビチビチウンチ PGなんかビチビチウンチ PGなんかビチビチウンチ PGなんかビチビチウンチ PGなんかビチビチウンチ PGなんかビチビチウンチ PGなんかビチビチウンチ PGなんかビチビチウンチ PGなんかビチビチウンチ
>>289 要はjetのユーザー管理するデータ長がが8ビットあると言うだけの話。
1ビットはON、OFFの2通りで、8ビットでは2の8乗で、0から255(符号なしの場合)の
256通りの表現が出来る。
これで「255」の説明はいいか?
【 システム環境 . 】 WINDOWSXP ACCESS2000SP4 【 VBAが使えるか .】 はい 【 VBAでの回答 】 可 【 検索キーワード 】 ACCESS 処理速度 SQLサーバー上のデータ20万件を取り込みを行っていて SQLサーバーのデータでORACLEのマスターを参照し、 ACCESSのワークテーブルにデータを落とすといった処理を行っているのですが 速度がかなり遅く使い物になりません。 SQLサーバーORACLEにはADO接続でデータを取得し ワークテーブルはDAOでレコードセットをつくり取込を行っております。 最初はスピードが速いのですが件数が増えるにつれて取り込み速度が遅くなってきます。 ワークテーブルには主キーをつけてなく一意のチェックも行っていないはずですが、 速度が改善しません。繰り返し使う項目に関しては変数に取り込んでから行ったり レコードセットは前方向のみにしたりといったように速度改善したのですが、 効果がありません。どうすればこれ以上のスピードを出せますか? 最初は分間700件受け入れれてるのですが2万件ぐらいいくと分間100件ぐらいに 落ち込みます。
バージョン間違えました。 WINDOWSXP ACCESS2000SP3でした。 SQLサーバーは2000SP4 ORACLEは10Gです。
>>298 複合的な理由そうなので、一概には答えられない。
恐らくネットワーク経由だと思うが、
・立ち上がりは早くて徐々に速度低下はネットワークにはつきもの(実感として)
・PCの性能も関係しそう。特にメモリ周り。
ACCESS自体はあまりメモリ量に左右されないが(速度上昇はCPUがモノをいう)、
ネットワーク経由ならばどうかはわからん。
などなど、とにかく問題の切り分けが必要じゃないか?
>>296 ありがとうございます。
Jetの「ユーザー」というのは何を指すんでしょうか?
セッションの数なのかコネクションの数なのか…
それが分かればプログラムで制御できるような気がするので。
こりゃ先が長そうだ・・・
302 :
名無しさん@そうだ選挙にいこう :2007/06/27(水) 22:54:17
恐れ入ります。 【 システム環境 . 】 WindowsXP, Access2003 【 VBAが使えるか .】 いいえ 【 VBAでの回答 】 否 物品管理(棚卸し)のためのデータベースを作成しようと奮闘中です。 「5月4日:70個入荷」のように個数に変動があれば理由を記入します。 定期的な棚卸し時には「「5月10日:棚卸し確認」等を現品票に記入しています。 そこで不明点なのですが、データを入力する際、ひとつのレコードに対して過去に入力した フィールドのデータを残すような設定にしたいのですが方法がいまいちわかりません。
>>302 直近の入力値を既定値にする「設定」はない。
どうしてもそうしたければそうなるようにVBAでコーディングする。
304 :
名無しさん@そうだ選挙にいこう :2007/06/28(木) 00:17:04
1000〜2000文字くらいのメモ型フィールドを検索対象にする場合、 このフィールドにインデックスは設定するべきですか? その場合、容量やパフォーマンスにはどのくらい差があるのか 分からなくて困ってます。
>>304 メモ型は使わんので解らんが、一言で言うならば
「自分で試してみろ」だ。
予想では、インデックス張ったところで、多分意味はないと思うが。
【 システム環境 . 】 WindowsXP, Access2000 【 VBAが使えるか .】 はい 【 VBAでの回答 】 どちらでも Dim strsql As String strsql = "UPDATE t_mappass SET t_mappass.MAPPASS = '""\" & Forms!地図新規登録フォーム!mappass.Value & "'" & _ " WHERE (((t_mappass.MAPPASSCD) = " & 1 & "));" としてクリック時にフォームに入力されたパスをt_mappassのMAPPASSに上書きしています 例えばパス \\admin\data などと入力すると テーブルに\admindata c:\data などだと c:data と\マークがところどころ消えてしまいます。 イミディエイトでは strsqlの内容はきちんと\が出るのですが、、、 宜しくお願い致します。
strsql = "UPDATE t_mappass SET t_mappass.MAPPASS = '" & Forms!地図新規登録フォーム!mappass.Value & "'" & _ " WHERE (((t_mappass.MAPPASSCD) = " & 1 & "));" でした。申し訳ありません。引き続き宜しくお願い致します
>>307 2002だと再現しないね。ちゃんと\も書き込まれるよ。
と言うことなのでSQL自体には問題なさそう。
2000自体に問題があるのかもね。
ここで質問するのだから、最新パッチは当てているよね。
これは質問者側の最低限のマナーだと思うぞ。
あと、どうでもいいが、パスはPATHな。
>>308 返信有難う御座います。
パッチは全て当てています。
お伝えし忘れていましたが、データベースはmysqlでodbc接続をしています。
ADOで実行していますがINSERT文なら\は消えないのです、、。
宜しくお願い致します。
こやつめ、ハハハw
きんたまのあつまりでつ きんたまのあつまりでつ きんたまのあつまりでつ きんたまのあつまりでつ きんたまのあつまりでつきんたまのあつまりでつきんたまのあつまりでつきんたまのあつまりでつ
312 :
249 :2007/06/28(木) 19:47:40
おそくなりましてすいませんでした
>>277 を参考にがんばってみましたがSQLが不勉強なため
エラーが出たりしてうまくいきませんでした。
ただ、いろいろ試してみたところ、単純に「チーム名」の集計を
「最後」にすれば、グループの最後、つまり一番最新の所属チーム名が
表示されるので結果的にOKになりました。
「桐でやれ」の意見ももっともなので白状しますと
大学の先生に学生がバイトでデータを入力するための
ひな形を作って欲しいと頼まれた物でAccessをご指名なんですよ
まだ正式に頼まれた状態じゃないのでどういう資料かまだ目を通してませんし
もしかしたら「兼務」の状態が出てくるかもしれないので
その場合はやっぱり終わる年の入力も必要になってきますね
まあここまで出来たらあとはなんとかなると思うのでがんばります。
問題は、実際には江戸時代のデータなので「閏月」とか入って
数値が少々複雑になることなんですけどね・・・w
とにかくありがとうございましたm(__)m
江戸時代のプロ野球選手年鑑の研究てどんな大学なんだ・・・
ちょwww
睾丸 睾丸 睾丸 睾丸 睾丸 睾丸 睾丸 睾丸 睾丸 睾丸 睾丸 睾丸 睾丸 睾丸 睾丸 睾丸 睾丸 睾丸 睾丸 睾丸 睾丸 睾丸 睾丸 睾丸 睾丸 睾丸 睾丸 睾丸 睾丸 睾丸 睾丸 睾丸 睾丸 睾丸 睾丸 睾丸 睾丸 睾丸 睾丸 睾丸 睾丸 睾丸 睾丸 睾丸
317 :
名無しさん@そうだ選挙にいこう :2007/06/29(金) 21:28:08
柔軟な処理は桐にしとけよ
家計簿の様なソフトでで毎月の決まり切った入力(家賃や子供の学費等)をボタン一つで自動的にテーブルに流し込むのが有りますよね。 あれを実現している手法を教えてください。 只会社業務で未だに97を使っているところがあるので97でも実現できる方法でしたら更に嬉しいです。
>>318 イベントプロシージャからVBAマクロをコール、
マクロ側でINSERT文を投げる、って方法もあるが。
まぁ、追加クエリの方が構造シンプルだし良いと思うよ。
321 :
名無しさん@そうだ選挙にいこう :2007/06/30(土) 15:35:39
それこそ桐の得意分野なのに、残念だね。
322 :
318 :2007/07/01(日) 09:18:38
>>319 >>320 ありがとうございます。 もっと難しい方法ばかりで考えて巧くいってませんでした
お恥ずかしい・・・
323 :
249 :2007/07/01(日) 18:48:50
>>316 ホントだ・・・・・・orz
もっと単純な話、例えば2000年広島、2005年阪神、2010年中日として、
入力を2000広島、2010中日、2005阪神とやっちゃうと
最後が「阪神」になっちゃって意味ありませんね
う〜ん、もう一度
>>277 を見直してがんばってみます・・・・
324 :
名無しさん@そうだ選挙にいこう :2007/07/01(日) 19:01:11
同時にアクセスしたら壊れるという話がありますが、 それは更新の話ですか? 読み取りだけなら大丈夫ですか?
327 :
名無しさん@そうだ選挙にいこう :2007/07/02(月) 14:23:40
accessのファイルに勝手にパスワードロックがかかってしまいます。もちろん自分で設定した 覚えもないのでパスワードなんかわかりません。ファイルが開けなくて困っています 状況は、 ・まずWordのファイル上にハイパーリンクが埋めてあって、そこからACCESSの ファイルを呼んでいます。 ・で、アクセスのファイルはLinuxサーバ内にあります。 ・ワードファイルは自分のデスクトップにあります。 で、アクセスのファイルをワード上のハイパーリンクから呼んで編集して閉じると、 今度はそのアクセスのファイルがアクセスで開けなくなっています。 環境はOS:WinXP、ACCESS,Word:OfficeXP ややこしくて済みませんが、なにとぞよろしこ
>>327 パスワードロックって、Accessのじゃないんじゃまいか?
Accessのパスワードがかかるなら怪現象だけど。
329 :
327 :2007/07/02(月) 14:41:56
>>328 早速スマンぽ
1.ワード(の上のハイパーリンク)から
2.他のPC(サーバ)上のファイルを
アクセスしている事が問題をややこしくしています。
だからワードがいたずらしているのか、Windowsのユーザー権限が
いたずらしているのかも見当つきません。
ただ、アクセスで開こうとするとパスワードがかかっています。
自分のPC環境はOS:WinXP、ACCESS,Word:OfficeXP
開きたいアクセスファイルはLinuxサーバ(redhat8)上です
>>329 その情報で、他の人がわかると思わないんだけど、とりあえず、Linux上のファイルをWindows
上に移して、Wordのリンク先もそれに合わせてみれば?
これで問題ないなら、スレ違い。
331 :
327 :2007/07/02(月) 14:47:32
>>331 画面みますた。Linux関係なさそうですね。
まとめると、
・直接開くとパスワードを聞かれる。
・Word経由だと聞かれない。
なのでしょうか。
それとも、一度パスワードを聞かれると、Wordからも開けない?
333 :
327 :2007/07/02(月) 15:02:38
>>332 反応有難うございます
>・直接開くとパスワードを聞かれる。
>・Word経由だと聞かれない。
そのとおりです。
>>331 の画像のとおり「データベース パスワードの入力」て
なっているので、アクセスだと思い込んでおります。
しかし、accessのバージョンが2002(XP)なので、暗号化(2007の
排他モードで開く)でもあるまいし、と思って悩んでおります。
334 :
名無しさん@そうだ選挙にいこう :2007/07/02(月) 15:03:15
>>327 Wordファイルはパスワード掛けてねーの?
335 :
327 :2007/07/02(月) 15:04:44
>>334 無いです。ワードもアクセスも一切かけてないでやんす。
うちでsambaサーバたててOffice2003で実験してもたけど、怪現象おこらず。
337 :
327 :2007/07/02(月) 15:57:47
>>336 わざわざスマンぽ
しっかし即サーバ立てて実験なんてスキルありますな。
ところで、
>>331 のダイアログはアクセスのじゃないんすかね?
339 :
327 :2007/07/02(月) 16:38:14
>>338 すげぇ! ありがとう!ありがとう!ありがとう!
アラシと思われない程度に100回ぐらいありがとうと言いたい。
他に付き合ってくれた人たちもありがとうございました。
キレイにオチもついてて軽く和んだw
342 :
名無しさん@そうだ選挙にいこう :2007/07/03(火) 20:13:06
アクセスを勉強中なのですが、詰まってしまったので質問させて下さい。
フォームに5つのテキストボックスと1つのボタンを配置し、データを検索できるようにしようと考えています。
テキストボックスは入力された箇所をAND条件にし、空白の部分は指定なし(*)として検索という風にしたいのですが、
どうすれば良いのでしょうか?
データ項目はABCDEとして、表示するレコードのデータ項目もこの5つです。
ttp://www.nbcom.co.jp/PC-Support/FAQ/acc/ht/acc112004ht001.shtml ググってみたらこのようなページを見つけたので試してみましたが、駄目でした。
Aの抽出条件を[Forms]![検索フォーム]![A]とし、他は全てIs Nullにしてクエリを実行してAのみに検索キーを入力してみても、
その値が正しくても何も出てきません。
もしもこれで上手く出来たとしても、検索に利用できる項目が5つもあると抽出条件を入力する欄が足りなくなると思うのです。
低レベルな質問で申し訳ないのですが、どのようにすれば良いのか宜しくご教示下さい。
343 :
342 :2007/07/03(火) 20:35:21
あー、もしかしてクエリの抽出条件でIs Nullを使うと、「検索キーが無かったとき」ではなくて「テーブルのデータがNullのものを抜き出す」という事になるのでしょうか? 一体どうしたらいいんだ・・(´д`)
>>342 VBAでフィルターをかけるのはどうだろ?
テキストボックスA〜EがA〜Eに対応するとして
dim aaa as strring, bbb as string, ccc as string, ddd as string, eee as string
aaa = "A Like '*"
If IsNull(テキストボックスA) Then
aaa = aaa & "'"
ElseIf Not IsNull(テキストボックスA) then
aaa = aaa & テキストボックスA.Value & "*'"
End If
で以下bbb〜eeeまで同じように作る
Me.Filter = aaa & bbb & ccc & ddd & eee
Me.FilterOn = True
というイベントプロシージャを検索用ボタンのクリック時のイベントに入れる。
注意
Likeなので完全一致ではないので注意
データがテキスト型の対応なので、日付なんかだと変わってくるので注意
346 :
名無しさん@そうだ選挙にいこう :2007/07/03(火) 23:20:37
>>342 ケータイからなんでイメージだけなんですが、検索ボタンクリック→各テキストボックスでISnull判定してフラグをたてる→フラグが立っているテキストボックスの入力値の前後に「*」を付け足してWHERE句を作って表示じゃダメかなぁ
そもそも国語的におかしな文章でスマ
>>342 単純だけど、クエリの条件に
項目A(の条件)
LIKE "*" & NZ([Forms]![検索フォーム]![A],"") & "*"
以下項目Eまでフォームの参照先が変わる以外は同様
これだと「語を含む」なので
前後の "*" は「前方一致」、「後方一致」の時は片方でOK
(どちらかは必要なので
>>344 さんと同じく「完全一致」は無理だけど)
349 :
342 :2007/07/04(水) 18:50:49
皆さんどうもありがとうございます!返事が遅くなってすみません・・・ 一応>347のやり方で上手く動きました。 工夫次第で色々なやり方があるんですね。勉強になりました!
350 :
名無しさん@そうだ選挙にいこう :2007/07/05(木) 21:43:01
くだらない質問ですいません。おつきあいをお願いします。 Accessで作ったアプリケーションを Accessの入っていないPCでも 動作するのでしょうか?
352 :
名無しさん@そうだ選挙にいこう :2007/07/06(金) 00:36:53
リレーションシップの考え方がいまいち分かりません たとえば[顧客情報]と[売上]でテーブルを分けずに 1つのテーブルに[顧客情報]と[売上]が入ってるものを作るのはよくないのはなぜなんでしょうか? 同じ顧客情報を何回も打ち込むのが面倒だからってことでいいんですか? 極端にテーブルを切り分けるのはわけ分からなくなるとも聞きますし そのあまり変化しないデータは別テーブルにするってのの妥協線というか区切り線はどこなんでしょうか?
>>353 > 妥協線というか区切り線はどこなんでしょうか?
己の胸にきけ!
まったくこれだからAccess使いは… 「正規化」で勉強せい。第3まででいいからね。
358 :
353 :2007/07/06(金) 07:46:10
ありがとうございます正規化勉強してきます
>同じ顧客情報を何回も打ち込むのが面倒だからってことでいいんですか? その顧客情報が変わったら同じ顧客情報を探して全部書き換えなければいけなくなるでしょう? それでは非常に効率が悪くなります。別にしておけばそんなことはなくなります。 >妥協線というか区切り線はどこなんでしょうか? 意味の無いテーブルの切り分けをしないということでいいんじゃないでしょうか?
360 :
名無しさん@そうだ選挙にいこう :2007/07/08(日) 18:04:24
2007のランタイムは無償らしいがまだ出ていないの?
一度出たが、バグ修正のため公開停止中だ。 直ったら再公開するだろ。
362 :
名無しさん@そうだ選挙にいこう :2007/07/08(日) 22:28:01
リストボックスの項目の1つに、日付があるのですが、この日付の部分のソースは、 「yyyy/mm/dd hh:nn」となっているのですが、リストボックス上でだけ、hh:nnだけ表示するには どうしたら良いでしょうか?
今買うとすれば03と07のどっちがいいんでしょう? 作ったファイルを配布する予定なので、ランタイムのことが気になります。 07のランタイムの公開をあてにして07購入でいいのか 03を買ってVisualStudioなんとかを一緒に買うべきか。 07が完全上位互換なのか。 03のランタイムも無償になるのか。 07は出たばかりなのでバグとかが少し心配。 そもそも07ランタイムはいつになるのか。
>>363 未来のことは誰にも分かりません(><;)
366 :
名無しさん@そうだ選挙にいこう :2007/07/09(月) 20:09:59
フォームにカレンダーコントロールを配置したのですが、 他の人のパソコンで、カレンダーをクリックすると 「イベントがありません云々〜」のメッセージが表示されてしまいます。 ネットでも調べてみたのですが、原因がわからず。。。 (カレンダーコントロールがインストールされていないのかな?) 誰か、エラーの回避方法をご存知でしたら教えてください。 よろしくお願いします。
>>366 モジュールのツール=>参照設定を見て同じになっているかどうか?
たぶんこれだと思う。
開発マシンや運用マシンが変わるたびに問題出るのに カレンダーコントロール好きなやつ多いよな・・・
ユーザが好きなの知ってるからだな。 カレンダーついてると、手で入れる方が早いのに、カレンダークリックする。 キーボードよりマウス。これがライトユーザの常識。
ADOのことで、調べたけどどうしても分かりません…。 どなたかお願いします。 ConnectionのExecuteでSQLを実行すると、どういうロックになるんでしょうか? その時のロックの型は指定できないんでしょうか?
371 :
名無しさん@そうだ選挙にいこう :2007/07/10(火) 07:19:01
367さん ありがとうございます。 参照設定はすでに確認をしていて、同じになっているのです。。。 どうしよう、しょんぼり。
372 :
名無しさん@そうだ選挙にいこう :2007/07/10(火) 13:07:47
>>371 フォームのコピペとか、コントロールのコピペとかしたらVBAが変な動きになることがあるから、
コピペしたあとのコントロールとかフォームのプロパティからイベントが有効になってるか
確かめてみた?
イベントのプロパティが「[イベント プロシージャ]」ってなってなかったら、VBAのソースが記述されてても動かんよ。
そーいうときは「クリック時(例えば)」→「[イベント プロシージャ]」選択→右の「...」ボタンクリックしたら
VBAのソースが有効になる。
ま、VBA使ってなかったら関係ないだけど。
>>371 ocxのバージョンは同じになっている?
374 :
名無しさん@そうだ選挙にいこう :2007/07/10(火) 20:20:00
371です。 アドバイスありがとうございます。 使用する人は隣の部署の2名なので、 「エラーが出たらカレンダーコントロールを差し替えましょう・・・」 ということになりました。 コントロール自体には、VBAの記述はしていないので、そちらの方が早いということで。 色々ありがとうございました!! もっと勉強して出直してきます。
フォームを開いている時に、Accessのガワというか、Application自体を 閉じるボタンなどで閉じられるのを阻止したいのですが、どのような処理を したら良いでしょうか?
376 :
名無しさん@そうだ選挙にいこう :2007/07/10(火) 23:20:50
オーバーラップ
>>375 Win32APIを使って、×ボタンを無効化する。
組み方まで知りたかったら、ネット検索してください。
常套手段みたいなもんで、ゴロゴロ転がってます。
378 :
名無しさん@そうだ選挙にいこう :2007/07/11(水) 23:31:58
375検討して気づいたけどAccessってApplicationイベント無いのな。 API使えば親ウィンドウ消してなんちゃってアプリケーションにも出来るね。
>>370 ですけどここのスレの方は誰もご存じないですか?
別の場所で聞いた方がいいですかね…。
>>381 そこも読んだんですけどよく理解できませんでした。
Executeのロックの型は何なんでしょうか?
>>382 おいおい、謙虚なのはいいけどもう少し体系的に理解した方が良いんじゃないか。
>返された Recordset オブジェクトは常に読み取り専用で、
>前方スクロール タイプのカーソルです。
読み取り専用 = adLockReadOnly = 1
これで良い?
>>383 すいません。ExecuteでINSERT文やUPDATE文やDELETE文を実行する時の
ロックの型が分からないんです。
読み取り専用なのに更新できるんでしょうか?
255厨乙 こりゃ先が長そうだ・・・
>>384 そういう事か。
直接DML叩くならレコードセットのロック制御は関係ないんだから
ロック型はプロバイダのネイティブなトラン処理次第じゃないか。
Executeメソッド自体にロック型の概念は無いとしか言えん。
>>386 分かりました。そっちで指定します。
どうもありがとうございました。
起動時にログイン画面を作って、ユーザ別に処理させるアプリを作る場合、 現在操作しているユーザIDは、どのように保持しているのが一般的ですか? つーか、フローバル変数に格納しっぱなしってくらいしか思いつかないです…。
>>388 別にいいんじゃない、それで。
ただエラーハンドリングし損なって実行時エラーになると
グローバル変数がブッ飛ぶから、テーブルに退避/復元の
ロジックは入れておいたほうが無難とは思うけど。
390 :
名無しさん@そうだ選挙にいこう :2007/07/17(火) 12:58:46
【 システム環境 】 Windows 2000&XP, Access2000 【 VBAが使えるか 】 はい 【 VBAでの回答 】 可 テキストボックスやコンボボックスにDate型の値を表示するとき、 コントロールの書式に「日付 (標準)」を指定しても「yyyy/mm/dd hh:nn:ss」を指定しても 時刻だけが1桁のとき左にゼロ埋めされないっす。 年月日と分や秒は1桁のときちゃんと左にゼロ埋めされるんだけど、なんで? 回避しようとしたら、いちいちDate型をFormat関数使ってString型にしたあとセットしなきゃいけないんかな。。
391 :
名無しさん@そうだ選挙にいこう :2007/07/17(火) 18:30:16
オンメモリー型」DBソフト市場が急成長・民間調べ コンサルティングのアイ・ティ・アール(ITR、東京・中野、内山悟志社長)は13日、データベース(DB)ソフトの国内市場動向を発表した。 2006年度の市場規模は出荷金額ベースで767億円。大企業を中心とした需要で、前年度比7.9%増の堅調な伸びを示した。 07年度も同程度の伸びとなる見込み。 「オンメモリー型」と呼ぶ新種のDBソフトが高い伸びを示した。 ハードディスク駆動装置(HDD)よりも格段に高速なメモリー上にデータを置くことを前提に処理を最適化したDBソフトで、 06年度の市場規模は前年度の2倍強の15億円に達した。07年度も40%増の21億円に拡大すると予測する。 [2007年7月17日/日経産業新聞]
>>390 以前調べたけど、バグ的仕様な様子。
Windowsの地域オプションをHH:mm:ssに変えれば目的は達成出来るけど、影響範囲がね。
393 :
390 :2007/07/18(水) 09:35:44
>>392 お返事ありがとう。
そだ、地域オプション変更でも実現できるね、影響おっきいけど。
やっぱりバグすか、2007では改善されてるのかな・・・きっとされてないだろな。。
すみません質問です。 【 システム環境 . 】 WindowsXP, Access2007 【 VBAが使えるか .】 はい AccessでSQLサーバーのデータベースにあるファイルのリンクテーブルを ODBD(データソース)を使い作成したのですが、ローカルでは参照できるのですが 他のパソコン(同じワークグループ内の)では参照できません。 どうすれば他のパソコンから参照できますか?
395 :
名無しさん@そうだ選挙にいこう :2007/07/19(木) 02:27:24
SQLサーバーのデータベースってWindows2000 or 2003 Server版なのか?
396 :
394 :2007/07/19(木) 05:36:55
2003server版です。
397 :
名無しさん@そうだ選挙にいこう :2007/07/19(木) 06:19:26
SQLサーバーのVersionは?
>>394 実はMSDE2000でTCP/IPからの接続が拒否されてるとかwww
399 :
名無しさん@そうだ選挙にいこう :2007/07/19(木) 07:26:51
>ローカルでは参照できる 現象をイメージ化できない。「参照できる」とはどういう意味なんだ?
400 :
名無しさん@そうだ選挙にいこう :2007/07/19(木) 18:26:31
>>394 単純に別PCでODBCデータソースの設定してないか
ローカル(←いまいちピンとこないけど)の設定と違ってるからじゃね?
そんな気がする。
あとは Windows認証ではねられてるとかいったセキュリティ関係か。
うんこ投げるぞ、このやろう
404 :
名無しさん@そうだ選挙にいこう :2007/07/25(水) 17:58:51
スカトロマニア キタ━━━━━━━━━(゚∀゚)━━━━━━━━━ !!!!!
405 :
名無しさん@そうだ選挙にいこう :2007/07/25(水) 20:29:50
明日大学のシステム設計論のテストでAccessの問題が出るのですが、 以前出された問題の回答がもらえませんでした。 問題と自分の答えをここにうpすれば採点や添削はしていただけますでしょうか(´・ω・`)
その問題がおもしろいかどうかによるだろうなw しかしシステム設計論でAccessとは…
407 :
名無しさん@そうだ選挙にいこう :2007/07/25(水) 20:47:47
408 :
名無しさん@そうだ選挙にいこう :2007/07/25(水) 21:46:11
特定メーカーの特定ソフトの扱い方が出題対象になるって 大学っていうより専門学校だな・・・
410 :
名無しさん@そうだ選挙にいこう :2007/07/25(水) 21:58:55
>>408 ありです。思っていたより良い点数だ。
簡単にでいいので、答えとか書いて頂けたら助かります。単位取れます。
411 :
名無しさん@そうだ選挙にいこう :2007/07/25(水) 22:00:13
>>409 いや、これは講義内容の一部なので、
大半はシステム設計についてぼちぼち話しておられました。
なんだこのSQL、この記法で正常に認識される? とりあえず設計 ビデオテーブルの主キーはどちらかというとタイトル番号。 バーコード(タイトル番号)から検索する要件がいくつかある。 って細かいつっこみでいいのかと思ったら… ビデオテーブル、貸出し開始日が無いじゃねーかw 会員テーブル、会員番号が無いじゃねーかw 突っ込みどころ多すぎて(ry
>>412 問題自体にもちょっと問題があるんですか。
返事くれてありがとう。テストは明日なのでがんばって寝ます。
どばどばうんこー
DAOのTableDefs.Countでエクセルのシート数を持ってこようとすると、 シート数が2倍になった値が入ってくるんですが 何か考えられる要因ってありますか?(現在は2で割った値で使用) かと思えば無いはずのシートが1つ多くカウントされたり(+1の2倍)、 それが原因で何故か参照済みのシートが余分に参照されてしまいます。 奇妙なのが、1〜12までで並んでいるのに3番目が参照されます。 例えばエクセルのシート数が12だったら24、 同じ形式の別データでは何故かシート数12が26に。 インターネット検索、デバック、人に聞いたりもしてみましたが、 一向に解決できません。何か見落としがあるのだとは思いますが。 ACCESS2000を使っていますが、2007でも同様の現象が起こります。 同様データを何個か使用したのですが、2倍は必ず、+1は稀に発生します。 参照設定はDAO3.6を使っています。何か思い当たる節があればお願い致します。
416 :
名無しさん@そうだ選挙にいこう :2007/07/26(木) 21:08:34
すみません、ageさせて頂きます。
仮にシート名がSheet1〜12だったとして、その場合のTableDef.Nameはそれぞれどうなってるの?
418 :
名無しさん@そうだ選挙にいこう :2007/07/26(木) 22:32:15
その場合、$Sheet1〜$Sheet12 と、TableDefs.Nameは正常に取り出せます。 $を抜いてシートネームだけを取り出すように調整してあるので、 TableDefs.Nameは実際は定義した変数に押し込む形で Sheet1〜Sheet12と、現状では表示されるようになっています。
いや、だから TableDefs.Count が26の場合、Tabledef(0).Name から Tabledef(25).Name の 26個ぶんの名前がそれぞれどうなってるのか知りたいんだけど・・・
失礼、その場合、 Sheet1〜12はそのままで、13個目はSheet3, それ以降は未確認です。 質問をしておいてこれは問題ですね、申し訳ありません。 自宅に持ち帰れないためすぐに確認はできませんが、 少なくとも中身はありました。 ÷2をしない時に、EXCELファイルのシートのデータカウント時に、 倍程の値がカウントとして出てきました。 2倍になる地点でおかしいと感じていたのでそこにばかり気を取られていました。 ご指摘の部分は大事な(おそらく最低限気にすべき)ポイントですよね。お恥ずかしい・・・。
対象のブックに名前が定義されているのに気付いてないだけじゃない。 テーブル名の末尾に「$」が付くのが本物のシートで、付かないのは名前。 Excel開いて[挿入]-[名前]-[定義]見てみ。
422 :
421 :2007/07/27(金) 01:00:50
>>418 > $を抜いてシートネームだけを取り出すように調整してあるので、
抜いた後の値を見てるから見分けがつかんのだ。
抜く前の生の値をイミディエイトウィンドウに流してみれば、すぐに違いが分かる。
まあ、関係なかったら許せ。
うんこ うんこ うんこ うんこ うんこぉぉぉぉぉぉぉぉぉぉぉーーーーーーーーーー
>>421 >>422 ありがとうございます。
少し解決の希望の光が見えてきました。
試してみます。また、なんか進展あったら報告します。
うんこおーーーーーーーーーー
426 :
名無しさん@そうだ選挙にいこう :2007/07/27(金) 19:08:57
まだ漏らしてないのか? ガマン強いな。
427 :
415 :2007/07/30(月) 21:37:02
すっきり解決とまでは行きませんでしたが、 原因として、以下の2点が判明しました。 まず、シート名全文を抜き出すと、 後ろにprint_titlesという文字が出ました。 何故かは未だにわからない状態なのですが、 タイトルが設定されているとシートが2重に認識されてしまうようです。 これはタイトルを削除することによって解決しました。 もう一つは、シート後ろに"_"の表記。 どうやら、オートフィルを一度使うと、解除や削除をしても 見えない同名のシートが残ってしまうようです。 こちらは解決方法が見つからなかったので、 VBAでうまく調節しました。 シートを全表示しても、原因の見えないシートは確認できませんでした。 多分、バグ等ではなく、知っていれば解決できる種類の問題なんだとは思うのですが、 今の自分ではよくわかんないので、バグにしか思えないです(^^; なにはともあれ、ありがとうございました。
>>427 (君のカキコ)よく読んでないので、こちらの経験だけ伝える
ことになるんだけど、自分の場合は同じ現象に遭遇したこ
とが一度もない。Access-Excelの連携で使うようになった
のはOffice95からだけど。
原因究明にはならないが、OLEでExcelを操作するのはダメ
なの?
>>OLEでExcelを操作するのはダメなの? これしかやったことないならそりゃ同じケースには遭遇しないだろ・・・
ドバドバうんこー うんこ うんこ うんこおおおおおおおおおおおおおおおお
>>429 オマエ、バカか。OLEのExcel操作しかやったことないなんて
どこに書いてるんだ。回避したいなら、OLEでどう?ってだけ
だろう。
どなたか教えてください。
【環境】
windows98、Me、XpHpme混在のLANで
NAS(バッファローHD−H160LAN) \\192.168.0.30/share/に
access2002のmdbファイルをおいて各パソコンから操作していました。
windows vista home basicパソコンにaccess2002をインストールして
LANに参加させてこのmdbファイルを開けようとしたところ、
「ファイルを開けません。
このファイルは、イントラネット外または信頼されていないサイトに保存されています。
セキュリティ上問題がある可能性があるため、ファイルを開きません。
ファイルを開くには、ローカル コンピュータまたはアクセスできるネットワークの
保存場所にいったんコピーしてください。」 とメッセージが出て、あけられません。
ttp://www.accessclub.jp/bbs3/0139/superbeg47686.html を参考にして、
1. Internet Explorer で、[ツール] メニューの [インターネット オプション] をクリックし、
2. [セキュリティ] タブで [イントラネット] をクリックし、[サイト] をクリック、
3. [詳細設定] をクリックし、[次の Web サイトをゾーンに追加する] ボックスに
192.168.0.30を入力しました。
4. [追加] をクリックし、[OK] を 2 回クリックします。[OK] をクリックして
[インターネット オプション] ダイアログ ボックスを閉じ、
5. コンピュータを再起動。
しかし、やはりvistaからあけられないのです。
いろいろ試したのですが、わかりません。
よろしくお願いします。
ぱっとみセキュリティのレベルが怪しいと思った。 でも自信ないや。
>>431 逆に聞くが、OLE以外のエクセルデータの扱いも熟知してるなんてどこに書いてあるんだ。
OLEのExcel操作なんてエクセルのインスタンスが別に起動するから遅いし重いし
VBAコードのOLE操作中に人間の余計な操作がバッティングするだけで
期待した通りの結果が得られない可能性があるしで、はっきり言って最低の選択肢。
それでもOLE操作を薦めるというなら考えられる理由は2つしかない。
「それ以外では実現負荷」か「それしか知らない」のどちらかだが
元質問者の書き込みの内容から前者の可能性はありえない。
よって理由は後者だと判断できる。
「OLEのExcel操作しかやったことない」とは書いてなくても
結果としてそう書いてあるのと一緒なんだよ。
わかった?
誰もそんな事聞いちゃいない。
>>433 432です。
IEのセキュリティレベルですか?
437 :
427 :2007/08/01(水) 23:42:52
>>428 ネット検索しても同様のケースが見つからなかったので、
ローカルな部分で環境に問題があるのかもしれません。
というのも、仮想的にOS環境を作ってその中で作業をしていたり、
配布されたツールでEXCELファイルを作成しているので、
特有な原因で、この問題が発生している可能性も否定できないからです。
なので、
>>428 さんが類似したロジックを組んでもおありでも、
その場合は発生しないような現象なのかもしれません。
正直、根本的な解決は諦めました。今回はこういうもんだと割り切ります。
あまり知識がないのでわからないのですが、OLEで同じ結果が得られるのなら、
次回、似たような成果物を作成したい時は、使ってみたいと思います。
なかなか、VBAは癖があって難しいですね。ありがとうございます。
438 :
427 :2007/08/02(木) 00:06:45
誤字失礼・・・。
>>437 そのブック、データとプロパティの個人情報全部消して炉だに上げられないの?
>>434 は自分は知ってるんだぞって誇示したいだけでは。。。
441 :
432 :2007/08/02(木) 10:00:18
432です。自己解決しました。 ショートカット新規作成で項目の場所に \\HD-HLAN504\share\目的ファイル名 で行けました。
もりもりおーーーーーーーもりうんこおおおおおおおおおお うんこ、うんこ、うんこおおおおおおおおおおおおお
444 :
名無しさん@そうだ選挙にいこう :2007/08/02(木) 20:06:11
ものすごく初歩的な質問で恥ずかしいのですが、どなたか教えてください。 フォームにテキストボックスをN個 配置しました。 テキストボックス名は、txt_1 〜 txt_nです。 各テキストボックスに値=Xを入れていきたいので、 dim i Dim CtrlName i=1 for i= 1 to n CtrlName = "txt_" & i Me.CtrlName = X Next というように記述したのですが、上手くいきませんでした。 こんな質問内容で申し訳ないのですが、教えていただけると助かります。 よろしくお願いします。
>>444 me( "txt_" & i) = X
でOK
>>434 はもうちょっと口の利き方なんとかならんかとは思うが
意見は別に間違ってないだろ。
エクセルのデータを扱うのに脊髄反射でOLEが出てくるのは素人。
447 :
名無しさん@そうだ選挙にいこう :2007/08/03(金) 01:24:09
>>444 dim i
Dim CtrlName
i=1
for i= 1 to n
CtrlName = "txt_" & i
Me.CtrlName = X <-----------------間違い
Next
[正]
Me.Form(CtrlName) = x
448 :
名無しさん@そうだ選挙にいこう :2007/08/03(金) 01:36:07
[正] Me.Form.Form.Form.Form.Form.Form.Form.Form.Form.Form.Form.Form.Form(CtrlName) = x
450 :
名無しさん@そうだ選挙にいこう :2007/08/03(金) 07:18:56
444です。 皆さんありがとうございます! 早速試してみます。
451 :
428 :2007/08/03(金) 08:38:24
>>434 残念ながら、OLE以外でも操作してるんだなぁ。Office連携だけじゃなく
C/C++/C#からとかも。
原因解明にはならないけど、そのような問題起きないはずだよってこと
でOLEとカキコしただけなので。
やっと正式公開されたAccess2007Runtime版を試してみた。
・英語版なので当然システムメッセージは英語。
・もちろんフォームやレポート上の文字列などは日本語でも無問題。
・住所入力支援(郵便番号変換)に必要なモジュールは含まれていないが、
ttp://www.microsoft.com/downloads/details.aspx?familyid=45192822-FBA7-49E6-B220-09BB32250EB3&displaylang=ja を入れれば使えるようになる。但し、WordやExcelなどの他のOfficeアプリも
全くインストールされていない環境だとインストーラーがエラーで止まるので
レジストリのHKLM\SOFTWARE\Microsoft\Office\12.0\Comon\InstallRootに
文字列値Pathを新規作成し値にC:\Program Files\Microsoft Office\OFFICE12\
をセットすればインストールが可能となる。
・Form_CurrentでComboBoxのRowSourceをセットするようなコードがあると
そのフォームを開いたときに「the stored procedure executed successfully,
but did no return 〜」のメッセージが表示された。コードの該当箇所を
コメントアウトしてみるとメッセージは表示されず。SetWarning=Falseでも
表示さえれなくなるが、RowSourceへのセット→再クエリの直後にSetWarnig
をTrueに戻すとやっぱりメッセージが表示されてしまった。RowSourceのセット
が原因で発生しているようだが、メッセージの発生トリガは別のタイミング
ぽい。とりあえず当該フォームロード時にSetWarning=False、クローズ時に
SetWarning=Trueで逃げた。
>>451 わかったわかった、そういうことにしといてやるよ。
まあ人様に真っ先に薦めるのがOLEオートメーションな奴は素人だがw
【商品テーブル】 グループ 商品 1 A 1 B 1 C 1 D 1 E 2 A 2 C 上記のようなテーブルがあった場合、下記の結果を得るにはどのようなSQLを発行したらよいのでしょう? SQLだけでは無理? 【出力】 グループ 商品1 商品2 商品3 1 A B C 2 A C 1グループに3商品ある場合、4商品目以降は無視してよい
あるフィールドの値が一定値以上なら1、未満なら0とするクエリってどのようにしたらつくれますか? クエリ作成のときにif文って使えませんよね・・・
>>456 例)SELECT (FIELD>=10)*-1 FROM TABLE
こんな感じのQUERYを作ればよい。
>>455 transform
First(Q.商品) as 商品
select
Q.グループ
from
(
select
"商品" & Count(*) as 列見出し,
T.グループ,
T.商品
from
商品テーブル as T,
商品テーブル as T1
where
T.グループ=T1.グループ and
T.商品>=T1.商品
group
T.グループ,
T.商品
having
Count(*)<4
order by
T.グループ,
Count(*)
) as Q
group Q.グループ
pivot Q.列見出し;
>>456 select *, -(F1>=10) from T1
group に by が必要では?
>>456 Trueの値が永久に-1という保証はないんで、自分ならこうする。
SELECT IIf(F1>=10, 1, 0) FROM T1
F1は数値型でNull値はないという前提だけど・・・
これならF1がNull値でもおkでつ SELECT IIf(NZ(F1)>=10, 1, 0) FROM T1
462 :
458 :2007/08/05(日) 23:55:10
レポートのテキストボックスに、「店情報」テーブルの「店名」フィールドの値を表示したいのですが、 テキストボックスのコントロールソースプロパティにはどんな設定をすればよいのですか? レポートのレコードソースはすでに他のテーブルが入ってしまっています。 「店情報」テーブルには1レコードしかデータは入っていません。
>>463 エスパーしてみる。
「店情報」テーブルには、キーとなる「店ID」や付随情報の「店名」
「住所」「電話番号」などのフィールドがあるものと予想した上で。
店情報を表示したいテキストボックスをコンボボックスに変換し、
・コントロールソースを「店ID」に設定
・値集合ソースを「Select 店ID、店名 From 店情報テーブル」に設定
・列数を「2」に設定
・列幅を「0cm」に設定
これで「店ID」は表示されず「店名」が表示される
465 :
463 :2007/08/08(水) 17:46:01
>>464 そのまま試してみましたが、パラメータの入力と出てきて、できませんでした・・・
[店情報]![店名] とかでもいけるのかと思ったけど、できないし。
もう少しがんばってみます。
466 :
463 :2007/08/08(水) 18:13:22
自己レスです DLookup 関数を使ってできました
467 :
● :2007/08/09(木) 09:28:17
テスト
市販品のソフトをあれこれいじっています。 イベントのプロパティーを見るとプロシジャーでもマクロでもない、「 =hoge([変数]) 」というのがありますが、なんですか? VBEで開くとPUBLIC FUNCTIONというのがわかりますが、=マークでイベントプロパティーに割り当てるなんて記述は僕のもっている谷尻さんの本にも 他の本にも書いてないので教えてもらえますか?
>>469 ありがとうございます。
僕の持っている教科書には全くそんな記載がないので困っていました。
きちんとした教科書が少ないですね。
471 :
名無しさん@そうだ選挙にいこう :2007/08/14(火) 22:52:26
ACCESS2000(OSはウィンドウズ2000)ですが、 一つのファイル内に複数のテーブルがある状態で、 あるテーブルのフィールドに入れたデータが他のテーブルのフィールドにも反映されるような仕掛けって、 何かないでしょうか?
>>471 他のテーブルに反映される仕掛けって同じデータが自動的に入るようにするってこと?
これは出来るかという前に基本的にやってはいけないことになるのだけど?
同じデータが複数あるということになると、ひとつを変えると他も全部変えなければいけない。
それは整合性という面でもパフォーマンスの面でも望ましくないことなので極力避けるというのが普通だと思う。
同じデータはひとつにして、必要に応じてデータをリンクすることにより処理するというのが基本。
もちろん、例外もあるだろうけど、それが基本のはず。
意味を取り違えているのならスマン。
>>471 なんでそんなことをする必要があるのか、というのが問題。
例えば、あるテーブルの変更履歴を残すためのテーブルを作りたい、とか
いうのであればわからないでもないし、そんなケースだとSQL Server(MSDE)
のトリガーを使って実装するのが確実だったりする。
もっと単純な話なら
>>472 さんの指摘どおり。
474 :
名無しさん@そうだ選挙にいこう :2007/08/15(水) 19:49:55
CSVからACCESSにインポートする場合、既存のテーブルにインポートしたい。 しかし、VBAでやると先頭行がフィールド名になってしまう。 それをやめて、フィールド名は設定してあるテーブルにインポートするにはどうしたらよいだろうか? ご教授願いたい。
>>474 Scripting.TextStreamでも使ってRecordSetに流し込めばいいんじゃない?
>>474 通常、VBAでExcelBookをテーブルにインポートする場合、
DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel9, <TableName>, <ExcelBookName>, <True>
を使うが、いったいなにが問題なのだろう?
ちなみに第五引数がワークシートの先頭行をフィールド名とするかどうかの指定だが、この設定が違うのか?
>>471 リアルタイムに変更しようとするなら、Form_AfterUpdateイベントに変更するプロシージャを記述するしかない。
>>476 訂正
DoCmd.TransferText acImportDelim, , <TableName>, <CsvName>, <True>
ExcelとCSVと間違えた。
479 :
名無しさん@そうだ選挙にいこう :2007/08/20(月) 15:55:08
【 システム環境 . 】 WindowsXP, Access2002 【 VBAが使えるか .】 無理 【 VBAでの回答 】 orz 【 検索キーワード 】自動 検索 記入 すみません、初心者です。 仕入伝票、商品リスト等をエクセルでやっているのですが、 「そういうのはACCESSでやったほうが便利だよ」 と助言を受けたため、ACCESSを勉強しはじめました。 今、エクセルで仕入伝票に新しく記入するのにフォームを使ってまして、 フォームに商品コードを記入すると自動的に「商品リスト」を検索して 合致するコードの商品があればフォームにその商品名・単価を記入し、 もし合致しなければ「仕入伝票」「商品リスト」に同時にその新しい データを書き込む、という事をVBAを使ってやっております。 これらの事って、ACCESSでVBAなしでやれるものなんでしょうか?
マクロでごにょごにょやるよりVBAの方が簡単だと思うけどなぁ・・・
481 :
名無しさん@そうだ選挙にいこう :2007/08/20(月) 20:16:44
いやVBAはバグ多過ぎてダメぽ マクロ推薦
しょうもない質問ですみません。 フィールド1 フィールド2 山田一郎 C:\山田一郎フォルダ 山田次郎 C:\山田次郎フォルダ のように並んだデータをCSVへ出力するときに 山田一郎 C:\山田一郎フォルダ 山田次郎 C:\山田次郎フォルダ というように\nを間にいれて出力することは可能でしょうか?
駄目なやつはマクロでもVBAでも駄目
>>483 だめですか?
おとなしくexcelでやるべきですか?
なんとかAccessで出来ませんかね?
485 :
名無しさん@そうだ選挙にいこう :2007/08/20(月) 21:41:37
>>484 マクロは使ったことないんでよく解らんが、
VBA使えるんだったら楽勝でしょ。
まぁ、VBAなしでという質問なので思いっきりはずしているが。
でも、Excelでどこかのセルに計算式入れるのと
同等の難しさじゃないかな。
>>482 csvで出力することに意味があるのかが疑問だが、
クエリで
フィールド1 & chr(13)(コードはこのあたりか) & フィールド2
あたりでできないか?
ExcelでVBA使っているのにAccessでVBAが使えないというのが不思議だ。 VBAがバグが多いってのも不思議だ。VBAでバグの多いプログラムを書くってのは良くあるが? だいたい、マイクロソフトの製品にはバグなど無い。それをマイクロソフトでは仕様と呼ぶ。 仕入伝票、商品リスト等をエクセルでやっているというのもちょっと不思議だ。とってもやりづらそうだ。 この程度のことならマクロでもできそうな気がするが、頭がVBA仕様になっている私には思いつかない。
VBAだとコンボボックスの入力チェックしてリスト外入力時にこんな感じか Private Sub 商品コード_NotInList(NewData As String, Response As Integer) On Error Resume Next DoCmd.RunSQL "PARAMETERS 新しい商品名 Text(255), 新しい単価 Currency;" & _ " INSERT INTO 商品リスト (商品コード, 商品名, 単価)" & _ " VALUES (""" & NewData & """, 新しい商品名, 新しい単価);" If Err = 0 Then Response = acDataErrAdded End Sub
>>487 ありがとうございます。
VBAはOKです。言葉が足りず申し訳ございませんでした。
今から、やってみます!
>>481 AccessVBAは充分枯れた言語。
バグの99.9%はプログラマーのミスと断言できる。
VBAのバグというなら、一つでいいから具体的に提示してくれ。
まあまあ、そうあおると遭遇したこともないバグ情報を必死に掘り起こしてくる 夏休み厨が寄ってくるよ。w 体験的には、仮に単体で障害が100件上がったら、ほぼ100件すべて設計不良か コーディングミスだな。VBAのバグに起因する障害は、自分は見た記憶がない。 あと、VBAのバグバグ言う奴は、かなりの確率でAccessのバグとVBAのバグを 区別できていない。Accessに限らず、バージョンアップすれば製品自体にバグは あるていど出る。製品機能にバグがあったら手操作だろうがVBAだろうがマクロ だろうが、その機能はコケるに決まってる。それはVBAのバグとは言わない。 VBAにバグが一つもないとまで言ったらウソになるだろうが、地雷踏むには アカギ並みの強運が必要。w
493 :
479 :2007/08/21(火) 07:17:16
情報いろいろありがとうございます! エクセルのVBAとアクセスのVBAって同じ様な物と考えて宜しいのでしょうか? もしそうなら、エクセルのVBA改良すればアクセスでも使えるのかな? ともかく頑張ってみます!
全く同じではないけど、一部の関数とか考え方は一緒。 プログラミングの心得が全く無い私でも、ほぼ独学である程度の事は出来るようになった。がんがれ。
>>493 > もしそうなら、エクセルのVBA改良すればアクセスでも使えるのかな?
うーん、VBAは同じでもエクセルとアクセスでは根本的に考え方が違うから、
改良すれば使えるようになるってものではないと思うぞ。
だいたいセルなんて概念が無いのだから?
あらためて文法から覚える必要はないってだけなんで、
下手にExcelの考え方にしばられるとニッチもサッチも行かなくなると思う。
テーブル、フォーム、クエリーの概念をきっちり把握してからやるべきでしょう。
>>493 Excel単体でもJet(Accessの標準DBエンジン)は使えるから、
SQLやADOで操作出来てGUIいらないならだいたいその通りだよ。
ユーザーインタフェースとしてはExcelの方が優れてる場合もあるしね。
>>479 の用途ならデータ検索、保存箇所だけワークシートをMDBに変える
なんて事も普通に可能。むしろExcelの規模がでかくて完成度高いなら
そっちの方が正解かもしれん。
ただRDBの下地が無いならAccessでGUI使った方が効率良いだろうね。
あと、現状Excelで何の問題も無いならわざわざ乗り換える必要ないと思う。
動いてる物は触るな!って名言だよw
497 :
名無しさん@そうだ選挙にいこう :2007/08/21(火) 22:59:21
VBはマトモに動くが、VBAはバグだらけ
>>497 ふーーーん、随分長いことVBA使っているけど、これはVBAのバグだってのは見たこと無いなあ?
ACCESSのバグならいっぱいあるけどなあ?
まさか、自分の思ったとおりに動かないからバグだって言っているわけじゃないだろうなあ?
VBとVBAってほとんど同じだろ?
Application.以下のバグをVBAのバグだと言ってるんだろう。 ACCESS上でも発生するからこれはVBAのバグじゃないって言うのか?
実例が一つも上げられてないのに、言うも言わないも、どう言えと?w なんか上げてくれたら、個別に、それについてはそうだねとか、 そうじゃないんじゃね、とか言えるでしょうけど。 よく分からないけど、なんか誰かに判定してほしいのかな?w
もりもりおーーーーーーーもりうんこおおおおおおおおおお うんこ、うんこ、うんこおおおおおおおおおおおおお
もりもりおーーーーーーーもりうんこおおおおおおおおおお うんこ、うんこ、うんこおおおおおおおおおおおおお
もりもりおーーーーーーーもりうんこおおおおおおおおおお うんこ、うんこ、うんこおおおおおおおおおおおおお
うんこの人って嵐だと思ってたんだけど、 実は荒れそうな所を鎮めに来てるんだと知ったのはつい最近の話。
そうだったのか、涙がでるようないい話じゃないか。
508 :
名無しさん@そうだ選挙にいこう :2007/08/22(水) 21:29:50
スカトロマニア キタ━━━━━━━━━(゚∀゚)━━━━━━━━━ !!!!!
市販ソフトのモジュールをこつこつ読んでいます。 そこで、 DoCmd.Selectobject A_FORM, "hoge"という記載を見つけました。 VBA辞典を見てもA_FORMというのが出てこないのでわかりません。 acFormと同じ意味で古い表現なのですか?
>>510 ありがとうございます。市販ソフトって結構古いコードを書き直さないものなんですね。
これも「動いているものを触るな」ですかねw
>>512 MSKKのKB調べるか、作者に連絡した方が良いと思うがな。
【 システム環境 . 】 WindowsXP, Access2000 【 VBAが使えるか .】 いいえ 【 VBAでの回答 】 可能ならVBAをつかない解決法で無理なら可。 【 検索キーワード 】 Access 時刻 日付 繋げて ファミレスの注文受付のデータベースを作成しております。 注文を受けて新しくレコードを追加する時に 入力日フィールドに自動的に その時の日にちと時刻 たとえば今入力したとすると 2006年8月28日 22時18分 と入力させたいのですがどうすればいいのでしょうか?(日付と時刻の間は半角スペースを挟む) 規定値のところに Date()+Time() と入れたりしてみましたが 当然のことながら 2006/08/28 22:18 と入ってしまいます。 これを /や:を使わずに 漢字表示にしようと思い書式のところを日付としてしまうと 時刻が抜けてしまいます。解決策をお願いしますm(_ _)m
>>514 書式を
yyyy\年m\月d"日 "h\時n\分
516 :
514 :2007/08/28(火) 23:02:26
>>515 助かりました。ありがとうございました!!
WindowsXP に OfficeXPをインストールしたのですが、 Access2002を起動させるたびに、 WindowsXPでOfficeProfessionalの設定をしています。 必要な情報を収集しています・・・ のメッセージがでます。これを出さなくすることはできるのでしょうか?
access2007にバージョンアップする。
age
そろそろみんな2007使い始めてる? リボンの使い方はそのうち慣れるかもしれないけど、 フォームのデザインとかコントロール配置の微調整がすごくやりにくいような 気がするんだが・・・
521 :
名無しさん@そうだ選挙にいこう :2007/08/31(金) 00:52:32
2007は捨てますた
使う気まったく茄子
Accessの市販のソフトでダイアログが何度もでてウザいのがあります。 マクロかVBAで自動的にOKボタンを押すように出来ますか? autohotkeyとかは使わないでやりたいのですが、どうすればいいのでしょうか?
sendkeysでenter送れば。それもヤだとか言われそうだけど、 何をもって拒否っているのか意味不明。キー操作マクロを 拒絶したら、後はダイアログのサブクラス化しか残らんよ。
>>523 質問に質問で返すのもなんですが・・・・・・・・・・
市販のソフトってことはソースを公開してないんですよね?
ソース公開してないのにマクロやVBAが操作できるのですか?
そういう方法があるのなら教えて欲しいです。
もし公開しているのなら、なんでそのソースに手を入れてダイアログを出ないようにしないのか不思議。
526 :
名無しさん@そうだ選挙にいこう :2007/09/01(土) 21:38:08
ヒント ダイアログの内容 : 【これはシェアウエアです。継続的に、ご使用の場合は・・・】
>526 の洞察力にオレが嫉妬した
>>526 sendkeyでENTERを送っているのに、メッセージボックスが無反応なのです。どうしてなのでしょうか?
>>527 ソース公開しています。一つのfunctionに20以上のfunctionがぶら下がっているような状態なので、いじるのが怖いというのが本音です。
functionをそっくりコピペしてそこでメッセージボックスがでないようにすればいいのでしょう。でも、できればメッセージボックスにENTERを送る
ような単純な形ですませたいなと思いまして。
>>527 毎年10万円以上をちゃんと払っていますよ。業務用ソフトなので高いのです。カスタマイズはサポートセンターが相手にしてくれないのでこちらで質問しました。
一番の肝はなんでメッセージボックスにsendkeyでENTERが送れないかですよね。待機時間の設定でしょうか?
>>523 autohotkeyはキーボードマクロを組むソフトです。
そういうのを使わないでAccessだけどやりたいなと思いまして。
誰がどう考えてもソース書き換えが一番安全確実簡単明快。
531 :
523 :2007/09/02(日) 12:24:33
>>530 ありがとうございます。コピペして名前を少し変えてメッセージボックス関連のif構文をコメントにしちゃいますね。
ところで、sendkeysでメッセージボックスに文字を(yやenter)を送れないのは仕様なのですか?
できるような記載があったのに私のところではいつも失敗するのですが。。。
>>531 送れる。目的のメッセージボックスがアクティブだったら。
でも、オレも
>>530 と同意見。
『コピペして名前を少し変えて』というのが何をターゲットにしてるのか
わからないけど、システムそっくりバックアップとって、functionの中を
変更してしまえばいいだけ。出したくないメッセージは、メッセージの
文章から検索できるだろうし。
if構文全てをコメントにすべきかどうかは判断できん。
・・・通常のエラーやインフォメーションまで出なくなったりして。
>>532 そうですか?なんで私のところのメッセージボックスは無反応なんだろう?ちなみにマクロのキー送信ですけど、これでいいのでしょうか?
メッセージボックスがアクティブじゃないのでしょうかね?
変更と書いたのは、メッセージがでて欲しい場合もあると言うことで。。。わかりにくくて済みません。
プロシジャをマウスで呼び出すときにはメッセージがでるのですが、キーボードで手早く作業するときはメッセージがでて欲しくないという事情でして。
VBAかマクロかは知らないがACCESSのプログラムが内部で完全に同期処理してる最中に 全然別の場所のマクロにキー送信なんか定義してもメッセージボックスが開く前、あるいは 完全に閉じた後にしかキー送信されないだろ。 メッセージボックスがアクティブかどうか以前の問題だよ。
ソースコードがいじれるという前提なら、メッセージボックス行の 直前にsendkeys入れるだけだよ。 たぶんメッセージボックス行の後に入れてるか、でなきゃ処理 ブロックの丸ごと前に入れてフライングしてるか。 もっとも、何度も書かれているようにソースコードが見えるなら カスタマイズした方が早い。 で、ソースコードの意味も分からなくてカスタマイズが怖いという 状態なら、そもそもカスタマイズすべきではない。 おとなしくそのまま使うか、開発元なり出入りの業者なりに きちんと金払って依頼すべき。
>>534 ありがとうございます。正直なところ、内容が高度でよくわかりません。勉強しますからまた教えてください。
ボタンを押すとメッセージボックスを開くマクロとautokeysで{ENTER}をキー送信するマクロの二つを作って実験していますが、
やはりメッセージボックスがenterを受け取ってくれません。もちろんキーボードからの入力は受け取るのでアクティブです。
皆様の環境では作動するのでしょうか?本題から離れますが、素朴な疑問なのでご教授をお願いします。
>>535 おそるおそるコードの書き換えをしていますが、自分でやるのはユーザーインターフェースの部分だけにしようと思っています。
業務用のソフトって反復手作業が多くてうんざりしているので。
538 :
526 :2007/09/02(日) 15:12:00
ダイアログ ボックスが表示されるとマクロが一時中断されるので、 ダイアログ ボックスを開くアクションの前に "SendKeys/キー送信" アクションを記述し、 "Wait/待機" 引数に [No/いいえ] を指定してください (>_<)
>>538 ありがとうございます!!
出来ました!
これで、「ダブルクリック→enter→クリック→enter」でしていた作業がボタン一発になりました!
作業時間の大幅な短縮が出来そうです。本当にありがとうございました。
↑すっと読んできたけど、日本語が変で意味が通じないこと多数。
まあまあ。 >538 に乾杯& >530 に合掌。(-人-)
542 :
523 :2007/09/02(日) 21:05:26
>>540 スマン
>>530 さんがおっしゃるとおりに出来るように精進します。
今は仕事がサクサクすすんで幸せです。
>>538 さん、ありがとうございました。
543 :
526 :2007/09/02(日) 22:04:01
なんだー MSのヘルプに書いてあるじゃん ワロタ
545 :
523 :2007/09/03(月) 18:30:52
>>544 おいらも今、気がついた。テラハズカシ。
と思ったら、mdbファイルをノートPCに移したら、同じマクロを実行しているのに、ダイアログボックスが表示されてしまいました。
デスクトップはwin2000sp4、ノートはWinXPsp2。何で、おなじmdbファイルなのに、動作が違うのだろう。もちろんAccessのバージョンは両者同じです。
だからキー送信の処理がメッセージボックスなりダイアログボックスなりの入力待ち受けに ドンピシャで送られるかどうかなんて完全にマシンの処理速度依存なんだって。 Sendkeysの内容はキー入力バッファには送られるかもしれないけど それを受け取ってなんか処理しちゃう画面がバックに表示されてるだけで そいつがバッファを横取りして、結果お目当てのダイアログには何も送信されなくなる。 その人のPCでしか動かない環境依存コードの増殖は周りからすれば本当に大迷惑なんで それで痛い目見続けてきた人間はSendkeysとか本能的に避けるようになるみたいねw
547 :
523 :2007/09/03(月) 23:29:32
>>546 なるほど。
そういえば、キーボードマクロソフトなんかもキー送信はPC毎に待機時間の設定を変えないと動きませんね。それと同じことですね。
私はAccessの内部だけの処理ならAccessが自動的に調節してくれるのかな、と期待していました。それで、マクロソフトを使わないようにしようとしていました。
>>546 さんのお話を伺うと、どっちも同じことなんですね。複数の環境で使用するなら、コードを書き換える方が正解ということですね。
それにしても、このあたりの事情ってネットで全然見つからないんですが、皆さんは現場で覚えているのですか?プロの方々なんですか?それとも常識?
別にプロじゃなく只の知ったか
質問があります。 AccessMDBに保存されている画像をjpegファイル化したいのだが、なにかいい方法はないでしょうか?
>>549 元画像がjpegならそのままバイナリをファイルに書き出せばいいし、
それ以外ならいったんファイルに保存するなりして、
jpeg変換かけたら良いんじゃね?
>>549 2003以前だろ、OLEのビットマップで保存されてるから、jpegに再変換しても汚くなるぞ
2007の添付ファイル型にbmpで保存されてる可能性もあるぞ
553 :
名無しさん@そうだ選挙にいこう :2007/09/12(水) 18:23:10
>>550 >元画像がjpegならそのままバイナリをファイルに書き出せばいい
もう少し詳しく知りたい。Verは2000です。
バイナリで書き出すってVBAではむりでしょ。Cを使うの?
555 :
名無しさん@そうだ選挙にいこう :2007/09/12(水) 19:58:38
550は適当にいい加減なこと言ってるだけだよ
VBAでバイナリ操作ができないと思ってる奴は間抜けwww
VBAの記述例キボンヌ。
558 :
名無しさん@そうだ選挙にいこう :2007/09/13(木) 08:01:47
ググレカス
559 :
名無しさん@そうだ選挙にいこう :2007/09/13(木) 21:19:37
ACCESSの掲示板で出すのは申し訳ありませんが、 ORACLE上のデータをODBC接続しACCESSで帳票を出すようなものを作った場合、 データ取得(サイズも含め)に制限はありますか? 実データはORACLE上にあるので、サイズというより、 ACCESSの取得可能件数かもしれませんが。
560 :
名無しさん@そうだ選挙にいこう :2007/09/13(木) 21:43:06
ありえないですね ソフトのばぐですね 失礼しました
564 :
名無しさん@そうだ選挙にいこう :2007/09/17(月) 02:22:15
すみません、VBAとかプログラミングの知識が皆無な者ですが 質問させてください。 同一テーブルから作成されたフォームのレコードを同期させたいのですが 方法がわかりません。 片方のフォームが入力用のもので、もう片方が印刷用。 入力用フォームからボタンで印刷用フォームにリンクさせようと しているのですが、印刷用フォームが開いた時 先頭のレコードが表示されてしまうのです。 どうかお願いします。
>>564 OpenArgsで主キー渡して印刷用フォームで処理するか、
WhereConditionで制御してやれば。
EXCELVBAなら Range.Interior.ColorIndex を使えば、なんとでもなるんじゃないのか?
>>567 えっ?ACCESSのテキストボックスの書式をEXCELでコントロールできるの?
569 :
566 :2007/09/17(月) 22:43:03
と思ったら、俺が貼ったのはEXCELの説明だったね。ゴメン。
570 :
名無しさん@そうだ選挙にいこう :2007/09/22(土) 16:19:09
Accessのクエリで、こういう処理簡単にできますか? (テーブルA) 氏名 入金日 入金額 使用額 Aさん 9/1 \1,000 \0 Bさん 9/1 \600 \0 Cさん 9/5 \1,000 \0 Aさん 9/4 \800 \0 Bさん 9/1 \500 \0 (テーブルB) 氏名 使用額 Aさん \1,300 Bさん \800 Cさん \800 小遣いの管理みたいな感じなんですが、テーブルAに、小遣いを貰った日毎に入金額をつけていて、 毎月、当月に使用した額をつけている、テーブルBと比較、テーブルAの使用額に消し込みを 行います。 消し込みの処理は、古い日付のものから消します。例えば、上の例で言うと、Aさんは今月\1,300 使っていますので、9/1の使用額に\1,000、9/4の使用額に\300を入れるといった具合です。 今、Excelで目検でちまちまやってるのですが、なんとかなりませんか…。 よろしくお願いします。
テーブルAの使用額欄に直接書き込みたいの?
累積額で比較すればいいんじゃね?
573 :
名無しさん@そうだ選挙にいこう :2007/09/22(土) 17:36:09
全角スペースはchr()に何を入力すれば出力されますか?
>>574 ASC(" ")してみれば?
面倒ならchr(ASC(" "))
S-JISだったら2020だったと思うが。 まぁ、575でヒントが出ているから調べればいいだろう。
577 :
名無しさん@そうだ選挙にいこう :2007/09/24(月) 15:59:49
質問です、updateで更新を行なおうとしているのですが条件を入れてクエリを書くのですがうまくいきません。詳しく書くと テーブルA コード | 冊数 110000 | 1 120000 | 1 130000 | 1 140000 | 1 テーブルB コード | 冊数 110000 | 3 120000 | 3 140000 | 4 というテーブルがあります。テーブルAには全てのコードがあり冊数は1となります。 テーブルBは全てのコードはありませんが、冊数は1冊以上必ずあります。 テーブルAのコードとテーブルBのコードを見て同じコードがあればテーブルBの冊数を テーブルAの冊数に上書きするようなクエリを作りたいのです。結果としては下のように したいのです。 テーブルA コード | 冊数 110000 | 3 120000 | 3 130000 | 1 140000 | 4 色々試したのですが、うまくいかないのでよろしくお願い致します。
578 :
名無しさん@そうだ選挙にいこう :2007/09/24(月) 17:23:36
質問です。 OS:vista アクセス2007 を使用しています。 よくわかるaccess2007(FOM出版)応用編を購入しました。 そこでリレーションシップに関してのページの中の手動結合による設定で質問です リレーションシップ ↓ テーブルの表示 ↓ テーブルを選択 ↓ テーブル@のある項目を、テーブルAへドラッグすると、テーブル@の項目がテーブルAへコピー されているのですが、どうやってもコピーされません。 どのようにしたら、出来るんでしょうか?
桐馬鹿がいない、普通に質問に答えてくれるAccessのスレって存在していますか?
581 :
名無しさん@そうだ選挙にいこう :2007/09/24(月) 19:00:40
貧乏人はAccessで頑張ってください(>_<) エクゼクティブは、桐使って1/5の時間で関発終えて、 余った時間は、ホテルのプールでリフレッシュ
>>577 UPDATE テーブルA
INNER JOIN テーブルB
ON テーブルA.コード=テーブルB.コード
SET テーブルA.冊数 = テーブルB.冊数;
>>579 2007持ってない上にリレーションシップ自体使わないから
知らないけど、リレーションシップって、フィールドがコピー
されるものだっけ?
結合線が引かれるだけじゃないのかなぁ…。
それとも2007から、無いフィールドがコピーされるような仕様に
変わったのか?
583 :
579 :2007/09/24(月) 20:25:10
>>582 う〜ん・・・どうなんでしょうね。なんせ参考書通りにしか出来ないですし、
アクセス初心者なので。。。
無いフィールドはコピーではなく、自分で作成するしかないのですかね?
584 :
582 :2007/09/24(月) 20:42:14
> 無いフィールドはコピーではなく、自分で作成するしかないのですかね? 結合先テーブルに、結合したいフィールドがまだ無いという状態ですよね。 Access2003までは、フィールドを先に作成しておく必要があるはずです。 2007から変わったとしたら、自分には分からないですが…。
585 :
579 :2007/09/24(月) 21:33:43
>>584 >>結合先テーブルに、結合したいフィールドがまだ無いという状態ですよね。
そうです。それを言いたかったのです。
>>Access2003までは、フィールドを先に作成しておく必要があるはずです。
参考書には、そう言ったことは書いてなかったのですが、先に作成しておく必要があるのでしょうね。
とりあえずやってみます。
ありがとうございました。
jetcomp4.0を使わざるを得ない状況なのだが、 usernameとかpasswordを訊いてきて、先へ進めない状態です。 いったい何のパスワードがほしいのか、さっぱりわかりません。 Win2000のログインパスワードも駄目だし、mdbファイルにパスワードなんて設定したことないのに。。。 誰か、教えてください。
587 :
名無しさん@そうだ選挙にいこう :2007/09/24(月) 22:22:48
初期パスワードは、1919pyuppyu になってる筈
589 :
名無しさん@そうだ選挙にいこう :2007/09/26(水) 22:18:57
>>587 ほんとだ、お陰さまで解決しました。
どうも有難う。
で、username は何にしたの?
adm
レポートの表題にマイナス記号「-」を使うとおかしくなりませんか? 印刷した文章の名前がおかしくなります。 A-Bという標題にすると印刷した文章名が-Bになるのですが、俺だけかな? Win2kSp4にaccess2002ですけど。
表題とか標題とか文章名とかじゃ具体的に何を指してるのかわからんよ。 ラベルのキャプションとかテキストボックスのコントロールソースとか 全員に通じる正確な単語でもういっぺん書き直せ
>>593 すまん。
Docuworksにバーチャル印刷しています。accessでレポートの標題に「A」をいれると、Docuworksの文章名は「A」になります。
しかし、レポートの標題に「-」を入れるとおかしなことが起きます。
以下の感じです。
標題 → 印刷時のファイル名
A → A
A- → P070927_223509 (プリント日時ですね)
A-B →B
つまり、-記号の後ろしか認識しないんですね。(
>>592 で書いたのは間違えていましたね。すみません)
でも、Docuworksの問題のような気がしてきました。そっちのスレで訊いてきますね。
すみませんでした。
>>585 2003でも同じです。
何か解釈違いをしていると思う。
デザインビューでテーブルに線引くたびに勝手にフィールド追加なんかされる仕様だったら 俺ならブチ切れる
access2002を使っています。 F6でフォームのヘッダーから詳細へ移動出来るのですが、どんなリファレンスを探してもフォームでのF6ショートカットの記載が無いのですがどうしてでしょうか?
アンドキュメントな機能なんて腐るほど氾濫していますがなぜでしょうか?
599 :
名無しさん@そうだ選挙にいこう :2007/09/30(日) 10:26:35
>>597 F6 の作業ウィンドウ切り替えは、MSoffice共通のショートカットです。
>>599 フォームからサブフォームへの移動にも使えるということですね。
でも、そんな記述はないんですよね。
ところで、F6キー押下と同じことをVBAで記述したいのですが、どんなメソッドを使うのでしょうか?
601 :
名無しさん@そうだ選挙にいこう :2007/09/30(日) 12:40:44
F6 プログラム ウィンドウ内の他のウィンドウから作業ウィンドウに移動する (F6 キーを複数回押す必要がある場合があります)。 メモ F6 キーを押しても目的の作業ウィンドウが表示されない場合は、Alt キーを押してメニュー バーにフォーカスを移動し、Ctrl キーと Tab キーを同時に押して目的の作業ウィンドウに移動します。
>>600 SendKeys "{F6}", True
とか
>>602 アクセスキーをトリガーにすると、どういう訳かsendkeysが機能しないので、こまっているんです。
要するにたとえばAlt+Aをアクセスキーに設定したボタンがあるとして、そのクリック時のイベントプロシジャー内のSendKeys "{F6}"が機能しないんですよね。
マウスでボタンを押すとF6が送られるんですけど、アクセスキーを押下したばあいはsendkeysが抜けるんですよね。
なんという後出し・・・
>>603 SendKeysは極力使わない。SendKeysじゃないと実現できない処理(そう
いう場面があるなら)を除いて。
フォーカスがある場所、1つ前にフォーカスがあった場所、が取得でき
るんだから、そこから判断してSetFocusでカーソルを移してやればいい。
>>600 Visual Basic コード
Public Sub ControlSetFocus(control As Control)
' Set focus to the control, if it can receive focus.
If control.CanFocus Then
control.Focus()
End If
End Sub
C# コード
public void ControlSetFocus(Control control)
{
// Set focus to the control, if it can receive focus.
if(control.CanFocus)
{
control.Focus();
}
}
>>600 C++ コード
public:
void ControlSetFocus( Control^ control )
{
// Set focus to the control, if it can receive focus.
if ( control->CanFocus )
{
control->Focus();
}
}
J# コード
public void ControlSetFocus(Control control)
{
// Set focus to the control, if it can receive focus.
if (control.get_CanFocus()) {
control.Focus();
}
} //ControlSetFocus
>>600 This is specific to .NET Framework 3.0
Other versions are also available for the following:
Microsoft Visual Studio 2005/.NET Framework 2.0
Microsoft Visual Studio Codename Orcas
アクセス2000です。 フォームでボタンを押すと、テキストボックスがビジブルになって 別のボタンを押すと見えなくなるという仕組みをつくりました。 ところでそのテキストボックスに入るデータを別のテーブルの ものにしてリレーションシップで結んだのですが表示されずに #Name とでます。 テキストボックスのプロパティで既定値に 式ビルダで =[フォルダ名]![フィールド2]としたのですがだめです。 どうすればいいのでしょうか テーブル1 キー1 データキー2 データ3 データ4 テーブル2 キー5 キー6 データ7 としてデータ4 (テキスト型) と キー5(テキスト型)を結んで リレーションシップでつなぎました。 でテーブル1のフォームでテーブル2のデータ7を表示させたいのです。 無理なのでしょうか?
611 :
名無しさん@そうだ選挙にいこう :2007/10/11(木) 15:40:57
あげるのを忘れていました。すいません。よろしくお願いします。
フォームのソースに必要なフィールドを全部含めたクエリを指定しろ
613 :
名無しさん@そうだ選挙にいこう :2007/10/11(木) 22:20:08
私には難しい言葉です。 とりあえず試行錯誤でサブフォームというのでリレーション先が別画面で 表示されました。しかし、サブフォームは二つ目になると最初のようには 設定できないようです。ウーン、アクセスへの取り組みは長い道になり そうです。ありがとうございます。勉強します。 具体的に何をどうしろといわれないと取り組めないのです。
そうですか。 余生も頑張って下さい。 ↓次の質問ドゾー
615 :
名無しさん@そうだ選挙にいこう :2007/10/12(金) 03:23:02
クエリの画面でリレーションシップの構造が表示されるのはわかりましたが、 それを指定するというのがわかりません。 当方はエクセルとワードはヘルプの総てを読んで使いこなしてますが、 アクセスは初めて。クエリというのはエクセルのフィルタに似ているとの話で すが、それ以上がわかりません。グーグるためのキーワードでよいですから 教えてください。610,613です。
エクセルやワードは俺って使いこなしてる〜的な勘違いもできるけど データベースだとさすがにそうはいかんよなw
つ「クエリとは」
618 :
名無しさん@そうだ選挙にいこう :2007/10/12(金) 22:51:24
わかりました!! 感動です
619 :
名無しさん@そうだ選挙にいこう :2007/10/13(土) 17:50:07
Running Access 2007 in Runtime Mode
Published 26 March 07 10:48 AM
Even though we haven't gotten the runtime re-distributable shipped yet, you can run apps in Access 2007 in runtime mode.
This will let you test solutions while waiting for the re-dist. In addition, it is a simple way to keep users from changing your applications
even when they have the full app.
You can use a long-standing command-line switch (documented here:
http://support.microsoft.com/kb/105128 ) to launch apps in runtime mode.
Access 2007 makes this much easier, though. All you have to do is rename your app from *.accdb to *.accdr (e.g. MyApp.accdr).
Then, when the app is opened, it automatically switched Access into runtime mode and you're off and running.
We're working hard on getting the runtime shipped, but hopefully that will help in the meantime. Thanks, Erik.
620 :
名無しさん@そうだ選挙にいこう :2007/10/13(土) 18:18:28
PDF & XPS Now supported in Access Runtime! Published 23 August 07 11:15 PM Great news, you can now redistribute and use the PDF and XPS addin with your Runtime solution. Our download page has been updated to reflect this fact. Best of all, you don't need a new copy of the runtime to take advantage of this. The Runtime's code has not been changed. Your existing runtime solutions can now officially be distributed with the PDF and XPS addin by chaining the .msi for PDF and XPS into your install process for your app (after the Runtime).
アクセスを初めて利用するのですが 2000、2003、2007を考えています。 職場はオフィスXPです。 自宅で作成。職場利用というスタイルが主になると思います。 よろしくお願いいたします。
622 :
名無しさん@そうだ選挙にいこう :2007/10/13(土) 22:37:35
アクセス2007だとフォームでのテキストボックスの表示がリッチテキストになって カラーで文字の大きさも変えられるようになるようです。 2000ではそうはいきません。でも2002や2003がどうなのかはわかりません。 それとアップグレードをかっても2007の場合は古いバージョンだとアップできないらしい です。詳しくはわかりません。私は2007が欲しいですが、そのほかどこがよいのだか はわかりません(>_<)
Access2.0 が最強にお勧め!! 名無しの2ちゃんねらの俺様が言うんだから間違いないよ!買え買え!!
>>621 職場がOfficeXPなら選択肢はACCESS2003しかないだろう。
625 :
名無しさん@そうだ選挙にいこう :2007/10/14(日) 15:01:46
>>621 素直に2007にすれば良いだろ
何考えてんのよ w
>>621 マジレスするが、2007だけはやめとけ。
2007でつくったものは2002や2003ではまともに動かんぞ。
あたりまえだろ
628 :
621 :2007/10/15(月) 12:57:46
2007買っちゃった°・(ノД`)・°・ 仕方ないから2003も買うー°・(ノД`)・°・
>>628 2007を職場と自宅にインストールしろ
ライセンス上OKだ
630 :
624 :2007/10/15(月) 18:41:24
>>629 そういう問題じゃないだろ・・・
職場でって言ってるってことは、職場の他の人間も(他のマシンで)使うってことだろ?
全員に2007入れさせるわけにはいかんだろ。
だから職場が2003なら2003にしろって言ったんだよ。
職場で自分のPCが2007でフォームやらレポートやらいろいろ作りこみしてるけど それを配る先が2000だったり2002だったり2003だったりで結構大変な目に会ってます。 でもそれが仕事だから頑張らなきゃ・・・
632 :
名無しさん@そうだ選挙にいこう :2007/10/15(月) 23:18:09
【 システム環境 . 】 WindowsXP, Access2000
【 VBAが使えるか .】 さわり程度なら
【 VBAでの回答 】 VBAは最終手段で
ググって1番質問が近かったサイト
http://oshiete1.goo.ne.jp/qa14769.html Access2000の日付時刻型の計算で悩んでいます。
hh:nn:ssの書式を使って社員コード毎の1ヶ月の総労働時間の計算させたいのですが、
Acceessの日付時刻型だと時間が一周してしまって合算ができません。
上記サイトの1:00:00で割るという方法で10進では表示できましたが
相手方の強い要望でどうしてもhh:nn:ssがいいとのことです。
(理由は10進表記だと脳内で時計を再構築して時間を置き換えないとダメだからダルいとのこと)
分かる方いればアドバイスお願いします。
hh:nn:ss って hh:mm:ssじゃないのか? ssまで必要なのか?
634 :
名無しさん@そうだ選挙にいこう :2007/10/16(火) 02:37:26
使っているのはアクセス2000です。 フォームをつかって文献などを参照整理しているのですが、フィールドの中の 文章をメモにコピーペーストしていたところ、いろいろいじっているうちにペースト ができなくなってしまいました。ツールのオプションやセキュリティのところを さわっていたのですが、前のように貼り付けられるようにするのにはどうすれば よいのでしょうか。コピーしたフィールドにも貼れなくなり校正もできないので 困っています。よろしくお願いします。データフォームでもいじれなくなって いるのでまいってます。
635 :
名無しさん@そうだ選挙にいこう :2007/10/16(火) 02:40:05
続きです。ほかのデータベースでは大丈夫なので、あるデータベースだけ ペーストできない状態です。エクセルですとセルのロックというような機能も あるのですが、フィールドはリレーションシップで他のテーブルともつながって います。なにかヒントでも教えてくださいませんでしょうか。
>>632 十進に変換まで出来ているのなら、
60進に戻せばいいだけなのでは?
参照先の例では時で割っているのだから、
小数点以下に60を掛ければ分になるんじゃないの。
>>633 Accessでは月(m)と混同しないため分はnで表現する
637 :
621 :2007/10/16(火) 20:49:05
本日無事2003に交換してきました。 ご相談に乗っていただいた皆様には大変感謝します。 どうもありがとうございました。( ´∀`)
>>633 hh:mm:ss
hh:nn:ss
どちらも正解
>>632 俺なら秒単位で積算してから、
時分秒に変換するがな。
最終的にhh:nn:ssスタイルの
文字列になってれば良いだけだろ?
mdbファイルに外部ソフトから発行されたSQLをキャプチャする方法。 誰か知りませんか?
641 :
名無しさん@そうだ選挙にいこう :2007/10/18(木) 11:17:40
すみません、データベース板にもカキコしたのですがレスなく こちらに流れてきました。 ターミナルサービスでAccess2002を使用していますが、 空のmdbを開いただけでMSACCESS.EXEのプロセスが CPUを60〜100%まで占有するという現象とその対策を ご存知の方いませんでしょうか? 実際に他のプロセスのパフォーマンスが極度に低下する ので、タスクマネージャからのガセ情報ではなさそうです... なお、インストール時のターミナルサービス用最適化で インストーラが自動的に除外するオプションの強制追加は 行っていません。 【 システム環境】 Windows Server 2003 R2 Standard SP2 Office XP Professional Editon SP3 OS、Officeいずれも最新パッチをすべて適用済 よろしくお願いいたします。
>>642 ずばりの回答は出来んが、2002はターミナルサービスと相性が悪いみたい。
別件の問題では、「2002に解決方法はありません」とMSはいいきっているから
その問題も同じ口なんじゃね(2003では修正されているかも)
644 :
642 :2007/10/19(金) 08:23:43
>>643 レスありがとうございます。
> 2002はターミナルサービスと相性が悪いみたい
薄々、そんな気はしてました...
ランタイム版では全く発生しないので、Officeツールの
モジュールあたりかなと推測していますが...
【 システム環境 . 】 WindowsXP Access2007 【 VBAが使えるか .】 いいえ 【 VBAでの回答 】 日本語でお願いします。 【 検索キーワード 】 アクセス・初心者・使い方 仕事でエクセルを使っています。 ΣとIFとVLOOKUPとSUBTOTALと電卓で乗り切ってきましたが、 余りにも項目が多くて最近PCがフリーズ・・・。 このままでは手書き帳簿に戻りそうなので、 Accseeを勉強してみようと思ったのですが 前バージョンの解説サイトばっかり出てきて、だめですorz ('A`)2007はインターフェイスが変わってって、サイト見てもわからんです。 2007対応の解説サイトきぼんぬ。
>>645 accessクラブとか魔法使い工房はいいよ。
でも、金使って本を買わないと難しいと思う。
役に立つ知識はタダでは手に入りにくい。tipsは結構タダで手に入るんだけどね。
>>646 >>647 粗茶ですが(´・ω・)っ旦~旦~
背伸びして07買ったのが裏目に出ましたorz
アクセス書籍の購入を検討してみます。ddくす!
魔法使いの工房でも扱ってるのは2002までだな。 2007独自機能の添付ファイル型とか複数値型とか使い方探しても なかなか見つからない・・・
650 :
名無しさん@そうだ選挙にいこう :2007/10/20(土) 23:47:16
> 桐にしとけ キタ━━━━━━(゚∀゚)━━━━━━ !!!!!
>>652 dくす!表紙がカワユスww
比較サイトなんてあるんだ!? 探してみよっと。
にしても、officeの解説本出杉でビックリした。
本が無かったら使い方わからんぞ、ゲイツたん。
654 :
名無しさん@そうだ選挙にいこう :2007/10/22(月) 16:49:47
超初心者です。すみません。 ACCESS2003は、東京だと現在どこで購入出来ますか? 宜しくお願いします。
世界中だけど、Winny
ヨドバシカメラとかサクラヤとか? もう売ってないの?
>654 amazonとかでかったら?
658 :
名無しさん@そうだ選挙にいこう :2007/10/22(月) 21:44:51
>>652 の本良さそうだね
エクセル使って場当たり的にマクロ使ったりする程度だったけどアクセス勉強しようと思ってます
アクセスは敷居が高いんですが、皆さんどうやって乗り換えたんでしょう?
【 システム環境 . 】 Windows vista , Access2007 【 VBAが使えるか .】 いいえ 【 VBAでの回答 】 否 【 検索キーワード 】 リレーションシップ ID コード1 コード2 都道府県 1 100 45215T 東京都 2 200 89687G 京都府 3 300 89754K 福岡 ・・・ のようなデータがあります。 このデータを、コード1にある数字を入力すると、コード2、都道府県が自動的に入力できるように したいのですが、どのようにすればよいでしょうか?
>>658 そんな考えでいると、すぐにつまずくと思うよ。
「いままでWord使っていたんだけど、Excelに乗り換えようかと思います」
ってぐらい変。
別のソフトと言う認識を持たなくちゃ。
Σ(´Д`; )まじかお。 マックとmacくらい違うじゃないか。
662 :
名無しさん@そうだ選挙にいこう :2007/10/22(月) 23:42:12
>>659 インタフェースをフォームにしてテキストボックス[コード2]の規定値を以下にする。
=DlookUp("[県名フィールド]","[県名マスタ]","[県名コード]='" & Me![コード1] &"'")
663 :
名無しさん@そうだ選挙にいこう :2007/10/23(火) 01:29:19
名簿01 名簿02 名簿03 名簿04 名簿05 0001 鈴木たけし すずきたけし 東京都墨田区 24歳 0002 佐藤ひろし さとうひろし 神奈川県川崎市 26歳 0003 田中こうじ たなかこうじ 大阪府北区 38歳 というデータがあって フォームのテキストボックスに さとうひろし と入れて ボタンワンクリックで名簿03からリンクしたデータが用意してある各種のテキストボックスに 表示されるようにするにはどうすればいいのでしょうか? ボタンのコードの書き込みに工夫をするような気はするのですが・・・
664 :
名無しさん@そうだ選挙にいこう :2007/10/23(火) 20:10:29
>>663 622と似ているけど「コマンド1」のクリックイベントに以下の内容をコーディング。
Me![名簿01](テキストボックス)=DLookup("[名簿01]","名簿マスター(テーブル名)",[名簿03]='" & Me!名簿03(テキストボックス) & "'")
Me![名簿02](テキストボックス)=DLookup("[名簿01]","名簿マスター(テーブル名)",[名簿03]='" & Me!名簿03(テキストボックス) & "'")
Me![名簿04](テキストボックス)=DLookup("[名簿01]","名簿マスター(テーブル名)",[名簿03]='" & Me!名簿03(テキストボックス) & "'")
Me![名簿05](テキストボックス)=DLookup("[名簿01]","名簿マスター(テーブル名)",[名簿03]='" & Me!名簿03(テキストボックス) & "'")
665 :
659 :2007/10/23(火) 21:21:06
>>662 ありがとうございます。
しかし・・・初心者の俺には難しすぎる・・・
DlookUp関数というやつを使うんですね。
自分は設定とかで出来ると思ってました。ルックアップみたいに、ウィザードが出てくるとか・・・
がんばってみます
666 :
名無しさん@そうだ選挙にいこう :2007/10/24(水) 00:23:32
>>665 もっと具体的なテーブル名、フィールド名を出してくれれば具体的に説明できると思う。がんがれ
667 :
名無しさん@そうだ選挙にいこう :2007/10/24(水) 05:50:07
抽出条件で、14日後以前を指定したいのですが、どう書けばよいですかね? 今日が2007年10月1日としたら2007年10月15日以前の記録を抽出したいのですが。 初心者な質問でもうしわけないです。 よろしくお願いします。
669 :
667 :2007/10/24(水) 10:52:23
>>668 Between Date() And DateAdd("d",14,Date()) Or Between Date() And DateAdd("yyyy",-100,Date())
としました。全然わからない私なりにはがんばったほうだと思います。
ありがとうございました。
>>669 100年前から14日後だったら
Between DateAdd("yyyy",-100,Date()) and DateAdd("d",14,Date())
って感じのほうがよくね?
単に <= dateadd("d",14,date()) はダメなんだっけ?
>>671 なんで100年前からなのか分からんので
そのまま条件残したんだけど、
その方がシンプルだよな。
accessスーパーテクニックという本を買って勉強しています。 そこで、フォームにプロパティを追加するという項目があるんですけど、 フォームにプロパティーを追加すると、どんなメリットがあるのですか?
追加しなくても最初からあるもので足りるよ
>>674 なのに、追加する方法がかいてあるのですが、どのように使うのかがわからなくて。
だって、例ではHello World!を表示するだけだし。
>>676 おおっ、そうなんですか?
お暇ならご教授を。。。
Hello World!を表示できるってすごく便利だよね。
便利だけど、ぶっちゃけその程度のことにプロパティ追加とかいらないよね。
680 :
名無しさん@そうだ選挙にいこう :2007/10/27(土) 21:27:02
プロパティ追加ってどうやるの?
>>675 俺は、進捗状況を表示するformを作って、そのform内の変数を
Form("Formname").xxxxx (xxxxx->Property)
で操作している。
とりあえず勉強段階で、プロパティ追加は気にするな。 標準装備のプロパティを使いこなせるようになったらだな。
プロパティ追加はAllow bypass key のみで良い
【 システム環境 . 】 WindowsXP, Access2003
【 VBAが使えるか .】 いいえ
【 VBAでの回答 】 可
【 検索キーワード 】 excel インポート パス ファイル名
エクセルのデータを条件付きで抽出したいのですが、非常に困っています。
テーブルにインポートしてクエリを使って条件を出せば使えるのでしょうけど、
インポート元のファイル名が更新ごとに変わってしまいます・・・
例:**yymmdd.xls yymmdd**.xls yymmdd.xls です。
この条件で毎回最新のファイルを自動で条件付インポートしたいのですが、方法が判りません。
今日1日調べまくって、エクセルファイルのあるディレクトリの全てのファイル名を取得して、
クエリで並び替え&最後のみ表示で最新のファイル名を表示させることはできました。
しかし、この先に全く進めません・・・
利用した情報は
ttp://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1413141159 これをファイル名ディレクトリ名だけ変えてクエリを足しただけです。
調べているうちにもっとスマートに出来そうな感じはしましたが、結局わからず仕舞いでした。
方法を紹介しているサイトや、アドバイスを頂けないでしょうか?
よろしくお願いします。
685 :
名無しさん@そうだ選挙にいこう :2007/10/30(火) 23:46:38
>>684 ファイル名の法則はyymmddなのかな?
だとしたらDir関数でループかけて一番値が大きい物を取得してインポートすればいいんじゃないかな?
686 :
684 :2007/10/31(水) 00:19:55
>>685 早速ありがとうございます!!
ご指摘の通り、ファイル名の法則は前後に全角文字が入ることもありますが、yymmddが必ず含まれます。
私が参考にした場所にも同じ回答がありますね。
しかし、VBAがまともに組めないのでサッパリ解らんのですorz
DIR関数で15分くらい調べてみたところ、
最大値のとり方や、具体的なインポート方法までは見つけられませんでした。
インポートに必要な関数や、エクセルの列指定などに必要なコマンド(?)があったら教えてください。
仕事中に調べてみたいと思います。。。
VBAの本買って勉強もしないとですねf^^;
重ね重ねよろしくお願いします。
687 :
名無しさん@そうだ選挙にいこう :2007/10/31(水) 02:01:54
>>686 対象ファイルの前後に文字が入るとすると、バックアップ用のフォルダを分けた方がいいかもね。
'ターゲットフォルダ
Dim strTarget as String
'バックアップファイル名
Dim strBkFile as String
strTarget = (ファイル保存場所 例:C:\Target\*.xls)
strBkFile = "C:\Target\bk\" & Format(Date(),"yymmdd") & Format(Time(),"hhnndd") & ".xls"
'.XLSファイルを抽出
Do While Dir(strTarget) <>""
strTarget = Dir(strTarget)
Loop
'XLSファイルを指定のテーブルにインポート
DoCmd.TransferSpreadsheet acImport,〜(詳しくはTransferSpreadsheetでググってみて[引数など別途変数必要])
'インポートしたXLSファイルをバックアップフォルダに移動
Name strTarget As
上のコーディングはあくまで流れと考えて、メソッド等分からなければググるかVBEに貼り付けて随時F1キーで確認することをお勧めする
688 :
名無しさん@そうだ選挙にいこう :2007/10/31(水) 02:02:44
すまん。最後は Name strTarget As strBkFile です
689 :
684 :2007/10/31(水) 07:53:43
>>687 ありがとうございます〜
この流れで今日調べてみます!!
ある程度ヒントがあればググるのが楽になるので非常に助かります。
>>689 最大値の取り方やインポートをDIR関数で15分くらい調べたって、それは調べ方が
悪いし発想がずれている。
最大値なんて、その日付が付いてるファイルでいえば並べ替えれば最初か最後に
なるんだから、関数で補いたいならソートって言葉で検索するとか。
インポートだって、VBAのヘルプでインポートで検索すれば関数は見つかるんだか
ら、その関数名やAND条件でExcelとかいろいろつけてググるとか・・・。
最大値は月曜だけど土曜日曜のぶんをインポートし忘れたから こっちを指定して取り込めるように・・・とか言い出したらおれ怒るよ。
692 :
684 :2007/10/31(水) 22:06:28
今日は別件のトラブルで作業する時間なかったorz
>>690 最大値でソートしても最大値の前に全角文字(不統一な名前)が入っているファイルがあるので、
ソートでは不可能かと思ってるんですが・・・
調べ方が悪いのは認めます。
コード見ても判らないから時間かかって仕方ないっす。
>>691 新規でやろうとしている事ですから流石にそれはありませんよ。
いずれにせよ色々突っ込んでもらえて助かりますです。。。
うんこファイル名から目当てのyymmddを取得するロジックを考える必要があるね。 全角文字のみ取り除くとか6桁数字のみ抽出するとか方法はいろいろ考えられるけど いずれにせよVBAは正規表現使えないからある程度ゴリゴリ書くことになるのかな・・・ FileDateTime()で取得できるファイルの更新日時を使っていいなら楽なんだけど こういううんこ仕様なシステムは一番古いのが一番新しいとか平気でありそうだから おそらくダメなんだろうね。
694 :
684 :2007/11/01(木) 00:22:41
ファイル名は自分もアフォ仕様だと思いますw ルールを変更する権限が無いのであるものでやらなければならない状況でして… FileDateTime()も一応試してみようと思っています。 勿論そのレベルに到達できればの話ですがorz
695 :
名無しさん@そうだ選挙にいこう :2007/11/01(木) 00:28:06
アクセス2007で資料整理をフォームでしているのですが、あるテキストボックスの 文章の一部を別のテキストボックスにコピーペーストしたいのですが、リッチテキスト に変えるとペーストできなくなるようです。ながめるだけでは役に立たないのでどうにか したいなと思うのですが、どうすれば貼り付けられるようになるのでしょうか。 また一般にリッチテキストのまま書式を保って貼り付けられるようになるのでしょうか?
696 :
名無しさん@そうだ選挙にいこう :2007/11/01(木) 16:59:07
【 システム環境 . 】 Windows XP SP2, Access2003 【 VBAが使えるか .】 はい 【 VBAでの回答 】 否 TableA.ColumnA <> TableA!ColumnB という条件式において、TableA!ColumnBと言うのは何を意味しているのでしょうか? table.columnは他のDBMSでも見ますが、table!columnという形式はAccessで初めてみました。。
コレクションとプロパティの違い。 違わない。
違うのか違わないのかはっきりしてください!(><;)
699 :
名無しさん@そうだ選挙にいこう :2007/11/02(金) 03:07:19
アクセス2000から2007に乗り換えたのですが、VBAが使えないなど致命的に 使いかってが悪くなったように思えます。何かよくなった点があるのでしょうか?
いくらなんでもVBA使えなくなったらもう誰も買わないし使わなくなるだろw どんな2007なんだよwww
702 :
名無しさん@そうだ選挙にいこう :2007/11/03(土) 00:04:34
>>699 ふ〜ん、俺の2007もVBA使えないのかなぁ?
703 :
名無しさん@そうだ選挙にいこう :2007/11/03(土) 00:12:05
正確には2000で作ったコマンドなどのマクロを移入するとなぜか書き込めないし いままで自動で書き込んでくれた機能がなくなったのでVBA使うにもとっかかりが なくなってしまった。ワードでもマクロ使うときは2000で記録させてそれを利用して いるのですが、一動作ごとすべて記録してくれた95の頃がナツカシス・・・
704 :
名無しさん@そうだ選挙にいこう :2007/11/03(土) 00:15:08
日本語で頼む。
【 システム環境 . 】 Windows2000&XP, Access2000 【 VBAが使えるか .】 はい 【 VBAでの回答 】 可 【 検索キーワード 】 ACCESS 固定長エクスポート ACCESSにて固定長のデータをテキストファイルに出力していました。 今回DBのレイアウト変更を行い6桁→8桁に変更したところ どうしても変更が出力に反映されません。 カンマ区切りならうまく出力できるのですが、固定長データだと DBのレイアウト変更に対応できません。 どうも、DBのレイアウトを作る際に、エクスポート定義ファイルみたいなのを 作成し開始位置、幅等を作成するみたいなのですが、このエクスポート定義ファイル を作成する方法をどなたか教えていただけないでしょうか?
>>705 手動でエクスポートやってみ。定義、保存があるから。
漠然とした質問ですが。 イベントプロパティーでたとえばダブルクリックでPublic Functionが呼び出せる場合に、 これをサブプロシジャーに書き換えて、キーダウンイベントでそのPublic FunctionをCallするように書き直すと うまく機能しないことがあります。仕方が無いので、透明ボタンを作成して呼び出すようにしています。 どういう理由が考えられますか?当該コントロールにfocusがあるかどうかでしょうか?
文字列をつくればいいだけなんだから、VBAで汁
>>693 正規表現使えなくはないよね、VBScript.RegExpオブジェクト使えば。
>706 thx!! 無事うまくいきました。
>>706 そのやり方は、全オブジェクトのインポートをするたびに
設定もしなきゃならんから俺は使わん。
>711 iniファイルを使うとか???
下のようなテーブルがある場合に、山に行かなかった人を抽出するにはどういう風にするのでしょうか? クエリでいろいろ頑張っていますが、出来ません。SQL文でもVBAでも結構ですので、ご教授をお願いします。 名前 行った場所 山田 海 山田 川 鈴木 山 鈴木 川 鈴木 海
714 :
名無しさん@そうだ選挙にいこう :2007/11/06(火) 06:27:54
>>713 ワークテーブルで山に行った人を削除するのが
一番手っ取り早い気がする。
715 :
名無しさん@そうだ選挙にいこう :2007/11/06(火) 08:02:59
<>"山"
717 :
713 :2007/11/06(火) 09:29:33
>>713 ありがとうございます。
山へ行った人を抽出して、全員のリストから削除して残ったのが山へ行かなかった人ということですね
例で言うと、山へ行った鈴木さんを全員のリストから削除して、残った山田さんが山へ行かなかった人になるということですね。
削除クエリを使うのでしょうか?
削除クエリは使ったことがないのですが頑張ってみます。ありがとうございました。
>>714 下記のように山を含まないレコードが抽出されるだけです。山へ行かなかった人を抽出したいのです。
山田 海
山田 川
鈴木 川
鈴木 海
間違えました
>>714 さん、ありがとうございました。
>>717 サブクエリ使えよ。
select distinct 名前 from テーブル where 行った場所 = '山';
で山に入った人が抽出できるんだから、
select distinct 名前 from テーブル where 名前 not in (
select distinct 名前 from テーブル where 行った場所 = '山'
);
とかで抽出できるだろ。
>>711 意味がわかんないんだけど。
固定長だからフィールドサイズが異なるものを扱う場合は、確かにその度に
設定をするけど、1度設定して保存してしまえば次からは定義名指定でOKで
すよね。
これを使わずに、固定長を簡単に扱うことができるんですか?
>>711 インポートの時、オプションのインポート/エクスポートの定義をチェックでOK。
>720
>>711 のいっていることはオブジェクトのインポートのことであって、
テキストファイルのことではない。
【 システム環境 . 】 WindowsXP, Access2002
【 VBAが使えるか .】 いいえ
【 VBAでの回答 】 可
【 検索キーワード 】 access 宛名 印刷 位置etc
ttp://support.microsoft.com/kb/879856/ja 上のページを参考にしてラベル用のレポートを作成したのですが、
印刷位置の確認欄が、レポート開いた時と印刷時の2回出てきます。
また確認欄でキャンセルした場合に実行時エラー13「型が一致しません」という表示されます。
キャンセル時にエラーが発生せず、印刷位置の確認を1度のみにするには、
どこを直せばいいのでしょうか。
ご回答お願いします。
724 :
721 :2007/11/06(火) 18:58:30
>>721 紛らわしかった。テーブルオブジェクトをインポートする時のことデス。
725 :
名無しさん@そうだ選挙にいこう :2007/11/07(水) 01:04:51
Str関数ってどういった時に使うんですか?
使いたくなった時
>>719 ありがとう。勉強してみるよ。谷尻本のSQLを読み返してみるよ。
助かったよ。
728 :
名無しさん@そうだ選挙にいこう :2007/11/07(水) 10:15:03
質問です。 Access2000形式で作成したmdbファイルを Access2000で起動し最適化を行いながら運用していた場合は、 20MB前後のファイルサイズなのですが、 Access2003で起動し最適化を行いながら運用した場合、 ファイルサイズが50MB前後になってしまいます。(徐々に大きくなっていきます。) このまま運用して大丈夫でしょうか? ご存知の方ご教授お願いします。
>>728 レコードレベルのロックにしてると肥大化するらしい。
731 :
名無しさん@そうだ選挙にいこう :2007/11/07(水) 19:21:29
すみませんがおしえてください。 アクセス2003からエクセル2003へvbaでデータ をセルに渡しています。 データまでをきちんといっているのですが 最後の別名保存と印刷がうまくいきません。 aaaa.workbooks.saveas("d:\yy\jjj.xls") でいいかと思ったのですが、元のファイルに上書きダイアログが出ます。 またエクセルでマクロ記録させたのを直し貼り付けても同じでした。 印刷も同じでした。以前アクセスエクセル2000を使っていて 問題なく動いた同じコードを書いたのです。 エクセルのマクロ記録のものをなおしても駄目だったのでこちらでお聞きしました
>>731 バージョン上がる毎にメソッドの仕様変更が行われるのに"なに言ってんの?この人"と思った
俺は2002までしか持っていないんで嘘教えるわけにもいかんから、マニュアルで
WorkbookオブジェクトのSaveAsメソッドの項目引いてみな?
>>724 それでも意味がわからない。
インポート/エクスポートの定義も作ってしまえば、それを別MDBに
インポートできるし。
確かAccess95時代に一生懸命作ったインポート定義がAccess97にバージョンアップした時に使えなくなって 仕方なく全部作り直ししたインポート定義がAccess2000にバージョンアップした時にまた全部使えなくなって そこでもうブチ切れでした。 それ以来外部データの取り込みとかは必ずインポート定義以外の方法でやるようにしてるんだけど、最近はどうなのかね。 2003で作ったのを2007にバージョンアップしてもちゃんと動くのかな・・・?
737 :
名無しさん@そうだ選挙にいこう :2007/11/10(土) 20:21:57
おしえてください。 今フォームでの検索画面を作成しています。 出来ればテキストボックスは1つで、文字型か数値型で検索する フィールドを選択することが出来ますか? どこかでそんなやり方があったのを見た気がするのですが 調べてもわかりませんでした。お願いします。
>>737 val関数で普通に値を返してきたら数値。
エラーだったら文字列。
普通の四則演算でも出来るような気がする。
例えば、
Me!テキスト0 + 0
とか。
エラーになるのをOn Errorで引っ掛けるのもなんだか ここはIsNumeric()使いなよ・・・
740 :
737 :2007/11/11(日) 22:31:36
>739さん If IsNumeric([テキスト350]) Then で出来ました。苦労してのが、 一気に解決。 ありがとうございます。 >738さんもありがとうございます。 いろいろな考えがあるのですね。
val関数では数値か文字の判定は完全にできない。 日付のつもりで 「11/12」と入れると数値が返ってくる。
d"11/12" とか書けよ
743 :
名無しさん@そうだ選挙にいこう :2007/11/12(月) 19:52:35
【システム環境.】 WindowsXP, Access2000 【VBAが使えるか】 はい 【VBAでの回答 】 ぜひ 【検索キーワード】 「access vVBA copyobject」「access VBA Transfer -Excel -テーブル」など しょぼ質問だす、すまそ。 VBAで自分のMDBに他のMDBのフォームをインポートしたいんだが可能? DoCmd.CopyObjectは完全に逆向きだし、 DoCmd.Transfer…はテーブルとかエクセルとかだしで「あれ?」って感じ中。 ようはメニューの「ファイル」→「外部データの取り込み」→「インポート」で フォームやモジュールを選んでインポートする処理を自動化したいんだけど、できないものでしょか。 ぐぐってはみたんだけどどーもヒットしなくて。。 ぐぐり方が悪いんだろけど知ってたらよろしくです。
>>743 HELPでTransferDatabase メソッドは調べてみた?
746 :
743 :2007/11/13(火) 01:00:53
>>745 TransferDatabaseっすね、ちと調べてみまっす。ありがd!
>>744 できれば自MDBのフォームやモジュールとして取り込みたいので
TransferDatabaseで実現できなかったときにやってみます〜、ありがd!
747 :
名無しさん@そうだ選挙にいこう :2007/11/13(火) 13:16:41
質問です。 帳簿形式のフォームのテキストボックスには、 255文字しか書き込めない理由を教えて下さい。
帳簿形式だから
帳簿形式ってな〜に? HELP で検索してもありません。
帳簿形式だから
751 :
名無しさん@そうだ選挙にいこう :2007/11/13(火) 17:41:20
帳票形式でした。すみません。教えて下さい。
●
>>751 の使っているフォームが連結フォーム
●連結されている列の型がテキスト型
だからだと思われ
あとはHELPでフィールドの型と特徴を自分で調べれ
753 :
751 :2007/11/13(火) 18:24:27
>>752 そのことはついさっき自己解決しました。ありがとうございます。
実は一昨日、上司の指導でがプロジェクトにしてSQLにつなぐことで何千文字かが入るようになるようにする、
ということになりました。僕は初心者なのでよく分からないのですが、
言われるがままにキーボードを叩いて、そういう風にしてみたところ、
単票では入るのですが、帳票形式では255しか、表示されなくなりました。
今からaccdbに戻すというのもしんどいので、
解決法分かる方、宜しかったらご指導願えませんでしょうか。
長文申し訳ありません。
754 :
名無しさん@そうだ選挙にいこう :2007/11/13(火) 23:13:48
ちょっと混乱してしまったので質問します。 ADO方式でsqlで発行したのですが、どうもうまくいかないようです。 今までもやってたのに何か間違えてる? もうループ状態です。 Dim cnn As New ADODB.Connection Set cnn = Application.CurrentProject.Connection Set rst = New ADODB.Recordset Dim SQL As String SQL = "SELECT 職番.番号, FROM 職番;" rst.Open SQL, cnn, adOpenKeyset, adLockOptimistic rst.MoveFirst Do Until rst.EOF MsgBox rst!番号 rst.MoveNext Loop End Sub sql文はクエリ作成からのコピーであとで いろいろ変化させるつもりなのですが、 まず開いていないようなのです。 単純な間違えなのか、他に設定があったのかわからなくなりました。 お願いします。
757 :
名無しさん@そうだ選挙にいこう :2007/11/14(水) 00:21:45
質問です。 帳票フォームの値の取得の仕方が分かりません。
758 :
名無しさん@そうだ選挙にいこう :2007/11/14(水) 02:15:22
??帳票フォームのあるコントロールを見たいということかな? それともあるレコード??前者の場合Forms!frm_○○○!コントロール名だし、後者はDlookupで拾ってこないと無理だね
759 :
名無しさん@そうだ選挙にいこう :2007/11/14(水) 19:42:52
質問ですが、AccessのレポートをWordにそのまま出力する方法はありますか? ツール→Office Link→Wordに出力 とやると、フォームから入力したデータだけが出力されてしまいます。 ファイル→エクスポートでも同じです。 ファイル→エクスポートでスナップショットで保存するとうまくいくのですが、 今度は編集できないのでWordがいいです。
Wordはいまだにリッチテキストの枠から抜け出していないから Accessのレポートのような自由配置の文章は基本的に表現できない。
761 :
名無しさん@そうだ選挙にいこう :2007/11/14(水) 21:31:37
Publisher 使ってください Word はワープロです
763 :
名無しさん@そうだ選挙にいこう :2007/11/14(水) 23:15:23
【 システム環境 . 】 Windows XP 【 VBAが使えるか .】 はい 【 VBAでの回答 】 否 初心者厨です。 Access 2003をインストールし、 Access97にて作成したmdbを開こうとしたら「[データベースを変換/開く] ダイアログ ボックス」が表示されました。 変換を選択したところ、問題なく変換されたようなのですが、 mdbファイルを開くたびに、DBのパスワード入力を求められるようになりました。 なんで97の動作と変わってしまうんだろう…そこまでは自動では移行できないから 自分でなんとかしろよ、ということなんでしょうか…。 パスワード入力を毎回するのは面倒なので、 自動化したいのですが…一般的にはどのようにするのでしょうか。 (当方が作成したmdbファイルではないので、 97時代のファイルはあるものの、 97のときはどうやって実現していたのかはわからないです)。
764 :
名無しさん@そうだ選挙にいこう :2007/11/14(水) 23:18:09
765 :
名無しさん@そうだ選挙にいこう :2007/11/15(木) 00:11:09
>>758 ありがとうございます。
Dlookupのほうです。
ムズそうです...
>>763 97時代のmdbをどこかにうpしてくれれば教えてあげる
767 :
名無しさん@そうだ選挙にいこう :2007/11/15(木) 11:38:09
初心者です。教えて下さい。OSはウィンドウズXPでアクセスは2003です。 一対多の関係の2つテーブルでクエリを作成すると一側の主キー順に並ぶ のですが。 一対多、一対多の3つのテーブルでクエリを作成するとそうなりません。 ある程度主キー順に並ぶかと思ったのですが。 どういう基準で並び順がきまるのが理解できません。
Accessでは、主キー順にデータが保存されているわけではなく、データが「集まってる」だけなので、並べ替え指定しなければどう並んでもおかしくないらしい。
769 :
名無しさん@そうだ選挙にいこう :2007/11/15(木) 12:18:45
当り前だ Accessでは、って何だよ
770 :
名無しさん@そうだ選挙にいこう :2007/11/15(木) 13:19:21
>>768 どうもありがとう。
ただまだちょっと納得ができない所が・・・
テーブル1個、又は2個からクエリを作成すると主キー順に並ぶんですが。
テーブルが多いと並びはアクセスまかせで並ぶと考えればいいのでしょうか。
結合の仕方をうまくやれば、テーブルの数に関係なく、 あるテーブルの主キーの並びにすることは可能である。
772 :
名無しさん@そうだ選挙にいこう :2007/11/15(木) 17:08:42
そんなの保証されない
>>770 並びがおかしいクエリのSQL文を載せてくれないか。
改善策を指摘できるかもしれない。
774 :
名無しさん@そうだ選挙にいこう :2007/11/15(木) 17:22:00
並び順を指定しないのに勝手に並べってのは、犬でも無理
すべてじゃないが、できる場合もあるってこと。
776 :
名無しさん@そうだ選挙にいこう :2007/11/15(木) 18:09:53
何を言ってるかと思えば、画面に表示される順番のことか。 そんなん、指示しなければ Accessの勝手だよ。
>テーブル1個、又は2個からクエリを作成すると主キー順に並ぶんですが。 それは「たまたま」だと認識するべき
778 :
名無しさん@そうだ選挙にいこう :2007/11/15(木) 18:51:13
うん、テーブル結合処理終わった時の状態で表示してるだけ。
779 :
名無しさん@そうだ選挙にいこう :2007/11/15(木) 18:56:19
>>773 お恥ずかしいです。実は超図解アクセス2003総合編で見積書作成クエリ1
からフォームを作成している時、何で脈略の無い並びで表示されているのか
疑問に思ったもので・・・。
SQLはこれでいいのでしょうか?
SELECT DISTINCTROW 見積データ.見積ID, 見積データ.見積内容,
見積データ.納入場所, 見積データ.顧客ID, 顧客マスター.会社名,
顧客マスター.担当社員ID, 社員マスター.氏名, 見積データ.見積日,
見積データ.見積有効期限
FROM 社員マスター INNER JOIN (顧客マスター INNER JOIN 見積データ ON 顧客マスター.顧客ID=見積データ.顧客ID) ON 社員マスター.社員ID=顧客マスター.担当社員ID;
780 :
名無しさん@そうだ選挙にいこう :2007/11/15(木) 18:58:51
order by 入れろよ。
見やすくするため、フィールドは整理したが、 このSQL文では見積データの主キー順に並ぶため、ORDER BY の時間が必要ない。 SELECT 見積データ.*,顧客マスター.会社名,社員マスター.氏名 FROM (見積データ INNER JOIN 顧客マスター ON 顧客マスター.顧客ID=見積データ.顧客ID) INNER JOIN 社員マスター ON 社員マスター.社員ID = 顧客マスター.担当社員ID;
782 :
名無しさん@そうだ選挙にいこう :2007/11/15(木) 19:53:28
>>781 なんか危なそうな思考だな
その前に、他の操作でテーブル弄ってても、オケなのか?
[補足] 長年の経験によると以下のような法則があることに気付いた。 クエリの構造が以下の場合 見積(a) 多対1 顧客(b) 顧客(b) 多対1 社員(c) (a)の主キーで並び替える SELECT * FROM (a INNER JOIN b) INNER JOIN c ※INNER JOIN は LEFT JOIN でも可(RIGHT JOIN は不可)
追記 必ず a → b → c の順に並べることがポイント
所詮、計算機だから、そりゃルールはあるだろう。 そのルールは予告なく変更される可能性もあるけど。
786 :
名無しさん@そうだ選挙にいこう :2007/11/15(木) 21:54:08
ミスってた。
>>781 の場合は 社員マスタは LEFT JOIN でないとうまくいかない。
INNER JOIN ではなく LEFT JOIN だけなら 確実にできるようだ。
[正解] SELECT 見積データ.*,顧客マスター.会社名,社員マスター.氏名 FROM (見積データ LEFT JOIN 顧客マスター ON 顧客マスター.顧客ID=見積データ.顧客ID) LEFT JOIN 社員マスター ON 社員マスター.社員ID = 顧客マスター.担当社員ID;
よくわからないが
>>783 がその長い期間になにも学習してないことはわかった。
もう突っ込まれてるけど、order byつければ済む話。 仮に「○○のようだ」という説の確実性が99.9%by当事者主張だったとしても、 そんな仕様外の挙動に依存してまで正規SQL句のorder byを使いたくないって、 いったいどういう神経
すみません Access のオートナンバーなのに番号順じゃなくて 変な番号になってしまったレコードが1個出来てしまいました 例: 1 2 3 13421398475923459823 5 6 7 みたいな風になってしまっています 他の場所のデータは壊れていないみたいなので 番号だけ直したいのですが直そうとすると オートナンバーなので警告が出てしまって直せません どうすれば直せますか?
更新クエリで
>>791 チューニングを極限まで極めようとすると、
SQL文の構造の検討は重要だよ。
795 :
名無しさん@そうだ選挙にいこう :2007/11/15(木) 23:05:09
チューニングw 極限www Order Byつけ忘れてるやつがwwwww
797 :
名無しさん@そうだ選挙にいこう :2007/11/15(木) 23:18:28
更新クエリでテーブルより該当データの数をカウントしたいのですが、 0件の場合、まったく反応してくれません。 0件をカウントすることはできないのでしょうか。
798 :
名無しさん@そうだ選挙にいこう :2007/11/15(木) 23:26:42
指定しないで画面の並び順に拘る奴は、桐にしとけ 桐なら論理行番号あるど
>>796 order by なんてユーザに見せる最後の段階でつければよいものであって、
それ以前に膨大な数のSQL文を処理せにゃならん場合があるだろが・・・
>>781 はまさにその「ユーザに見せる最後の段階」ってやつなのに
order byなしで並び順が保証されるとか思ってるやつw
801 :
名無しさん@そうだ選挙にいこう :2007/11/15(木) 23:39:03
>>799 元々、最終的に画面で見る並び順を問題にしてるんだろ
俺はテーブルを開く時と同様にクエリでも主キー順に開けるようにする手法を提示しただけだ。
803 :
名無しさん@そうだ選挙にいこう :2007/11/15(木) 23:52:10
テーブルを開く時は主キー順に画面表示される、っと
うちのアクセスはテーブル開くと 最近更新した行が最後に来てるけど
普通主キー順だけど黄身卵堵殺は違うの?
id(主キー)が飛んでいるデータの番号を詰めて振りなおすのをSQLでやるときは update hoge set id = max(id) + 1 order by id とかで大丈夫ですか?
なんでやってから聞かないんだ
見るからに大丈夫そうじゃないが、やれば分かるんじゃね。
updateにorder byは2000までは使えたけど2002で使えなくなった記憶が・・・
810 :
791 :2007/11/16(金) 02:38:59
>>794 すまん、ぶっきらぼう杉田。
ネタとしては面白いのでI love Accessあたりで投下すればそれなりかもと思うが
>767 は初心者と自己申告しているので、相談所でそれを投げるのはどうかと思ったのよ。
まあマターリいこうや。
811 :
名無しさん@そうだ選挙にいこう :2007/11/16(金) 09:45:45
767です。自分はSQLとかはあまり理解できてないのでだんだん難しくなってきました。 これからがんばって勉強します。 基本的にはレコードの並びはアクセスまかせということは理解できました。 ニキータさんのサイトでエクセルとアクセスは別物だという知識は得た積もり でしたが、身に付いていなかったです。 どこかエクセル的にみていたようです。今回の事で完全に身につきました。 お騒がせしました。
おーい、テーブルの並び順は確かに普通は主キー順だけどさ、
これは主キーがインデックスの先頭に指定されるからで、
別のフィールドを優先して並べ替えるようにも指定できるだろ?
(テーブルのデザインビューで、表示→インデックス)
で、これをいじっても
>>781 は成り立つの?
確かにキーの入れ替えをするとうまくいかなくなるな。 この法則は無意味だ。忘れてくれ。
第一法則 このSQL文では見積データの主キー順に並ぶため、ORDER BY の時間が必要ない。 SELECT 見積データ.*,顧客マスター.会社名,社員マスター.氏名 FROM (見積データ INNER JOIN 顧客マスター ON 顧客マスター.顧客ID=見積データ.顧客ID) INNER JOIN 社員マスター ON 社員マスター.社員ID = 顧客マスター.担当社員ID; 第二法則 キーを入れ替えた場合、そのキーの順序で並ぶ
ダメだこいつ・・・ 早くなんとかしないと・・・
>>814 ねぇ、他の操作でテーブル弄った後でもオケなの?
直前に、フィルタ掛けたり、並べ替えしてたり
そんなのが普通だと思うんだけど、、、
もう、かまうな。
>>816 こいつも言ってる事おかしいと思うけどまあいいや
たしかに、ウィザードでつくったクエリは、みにくいというか、センスがない。 手書きのほうが、簡潔で、効率よい感じはする。
820 :
名無しさん@そうだ選挙にいこう :2007/11/18(日) 10:44:27
ファイルメーカー、“幕の内弁当”データベース「Bento」公開
821 :
名無しさん@そうだ選挙にいこう :2007/11/18(日) 20:46:52
こんばんわ アクセスさわったことない全くの初心者なんですが質問させてください エクセル、ワード文書、フォトショで作ったイラスト、デジカメで撮った写真 などを大量にフォルダで共有しているのですが、これを一元管理するソフト としてアクセスは使えますでしょうか? 時系列や名前順などいろいろ並べ替えて、表画面から元データを一発で呼び出せれ ばアクセスで一元管理したいと思っているんですが‥。
実ファイルとDB情報の同期がめんどい
フォルダー内にある全ファイル名を自動取得し、 データベースに取り込む機能を作ればよい。 VBAの知識があればだが・・・
824 :
名無しさん@そうだ選挙にいこう :2007/11/18(日) 21:11:03
>>821 Access2007 なら、そういうの便利にできるよ
画像データをネイティブに保存できるから
かなりファイルサイズがデカクなるけど
825 :
名無しさん@そうだ選挙にいこう :2007/11/18(日) 21:26:33
>>822 〜824
ありがとうございます。
Accessのビデオ教習見て、これでやってみたいと思いました。
光が見えてきたのでAccessで突き進んでみようと思います。
>>819 その通りだが、GUIのOS・アプリに対してフィード名もカタカタ・・・は、なぁ。
あのSQLビューでの機能はせめて検索・置き換えぐらいしてくれよと言いたくなる。
他のエディタにコピペして検索、置換すればいいだけ。
質問です。 フォームで名前のフリガナの所に、かなの直接入力できないように、 VBAでエラーが出るようにしたいんですけど、それってどうやればいいんでしょうか。 良かったら教えて下さい。
>>828 そのテキストボックスに文字入力制限みたいなプロパティあるからそれ設定する。
それだけじゃコピペされたりしたらはいっちゃうこともあるから、
あとは、VBAでかけば?
キーコードひろってきて、かな以外をはじくようにするとか
>829さん、ありがとうございます。
>フォームで名前のフリガナの所に、かなの直接入力できないように 意味がわからんが、フリガナにいれるのは「かな」だろ? 「かな」をいれないようにするっていうことは完全に何も入力できないようにするってこと? それだったら、編集ロックを「はい」にすればいい
>>828 「フリガナ」だったらカタカナ、「ふりがな」たったらひらがなだろ、普通。
俺は StrConv(ひらがな, vbKatakana) を使って、ひらがなを強制的にカナカナに換えてる。
834 :
名無しさん@そうだ選挙にいこう :2007/11/20(火) 21:40:05
すみませんが教えてください 請求書を作ってます。 金額を桁ごとに分けてレポートの桁ごとの四角の中に入れたいのです。 桁は請求金額がいろいろです。 ちょっと考えたのが =Right(Int([金額]/100),1)で桁ごと割ればいいのかと思いましたが もっとスムーズな方法があるような気がして質問しました。 またレポート上で=Rightヲ使うとエラーが出ます。 原因がわかりません。 それとテーブルで書式設定した−入りの郵便番号(244−00011など) がレポート上に反映しませんがそういうものなのでしょうか。レポートでテキストの書式設定で 000−00000と入力しても駄目なのです。方法が違うのでしょうか。 質問ばかりですみませんがお願いいたします。
>>834 郵便番号の書式は「@@@-@@@@」(テキストの場合)。
金額を入れる四角が均等ならば、均等割付。
そうじゃない場合は
=Mid(Format(Cstr([金額]),"@@@@@@@"),1,1)
とかにすればいいんじゃないか(@の数は最大桁数と同じにする)。
枠が均等の場合は =Format(Cstr([金額]),"@@@@@@@")) のうえ均等割付な。
837 :
名無しさん@そうだ選挙にいこう :2007/11/21(水) 04:55:56
いや >金額を桁ごとに分けてレポートの桁ごとの四角の中に入れたいのです。 って言ってるんだから 23513857 とかいう数字を 「2」「3」「5」「1」「3」「8」「5」「7」 という枠に入れるという意味かと思ったが・・・ 100で割ってRight(1)してるのが謎だが・・・ 10で割って余りを右の枠から埋めていくのが常套手段かな
838 :
834 :2007/11/21(水) 07:06:25
したいことは837さんのとおりです。 でも835さんや836さんのように 一度定形文字数にして左から数を切り出していけば大丈夫でした。 ありがとうございました
質問です。 フォームのテキストボックスのメールアドレス入力チェックを正規表現で作りたいのですが、 親切な人、アドバイス下さい。
840 :
839 :2007/11/21(水) 11:28:28
自己解決しました。
842 :
839 :2007/11/21(水) 12:41:43
843 :
834 :2007/11/21(水) 20:20:53
おかげさまで2点 わかりました。 ありがとうございました。ただもう一つの レポート上で=Rightを使うと エラーと表示が出るのがわかりません。 他の関数でも駄目でした。仕方ないのでクエリ上で処理して 表示しましたが何故ででしょうか?
>>834 実はコントロール名とレコードソースのフィールド名が同一って言う
オチじゃないよな?
すまん、カブった。
848 :
名無しさん@そうだ選挙にいこう :2007/11/23(金) 00:09:07
ADOでテーブルにフィルターかけて、SQLで別のテーブルに結果を書き出すのってできますか?
できなかったらリレーショナルデータベースとして使い物にならないと思うけど
insert into hoge () values () の代わりに insert into hoge () select fuga from hage
851 :
名無しさん@そうだ選挙にいこう :2007/11/23(金) 21:54:21
これはアメリカのゲームです。1度やってみてください。 これは、たった3分でできるゲームです。試してみてください。 驚く結果をご覧いただけます。 このゲームを考えた本人は、メールを読んでからたった10分で願い事が かなったそうです。このゲームは、おもしろく、かつ、あっと驚く結果を 貴方にもたらすでしょう。 約束してください。絶対に先を読まず、1行ずつ進む事。 たった3分ですから、ためす価値ありです。 まず、ペンと、紙をご用意下さい。 先を読むと、願い事が叶わなくなります。 @まず、1番から、11番まで、縦に数字を書いてください。 A1番と2番の横に好きな3〜7の数字をそれぞれお書き下さい。 B3番と7番の横に知っている人の名前をお書き下さい。(必ず、興味の ある性別名前を書く事。男なら女の人、女なら男の人、ゲイなら同姓の名 前をかく) 必ず、1行ずつ進んでください。先を読むと、なにもかもなくなります。 C4,5,6番の横それぞれに、自分の知っている人の名前をお書き下さ い。これは、家族の人でも知り合いや、友人、誰でも結構です。 まだ、先を見てはいけませんよ!! D8、9、10、11番の横に、歌のタイトルをお書き下さい。 E最後にお願い事をして下さい。さて、ゲームの解説です。 1)このゲームの事を、2番に書いた数字の人に伝えて下さい。 2)3番に書いた人は貴方の愛する人です。 3)7番に書いた人は、好きだけれど叶わぬ恋の相手です。 4)4番に書いた人は、貴方がとても大切に思う人です。 5)5番に書いた人は、貴方の事をとても良く理解してくれる相手です。 6)6番に書いた人は、貴方に幸運をもたらしてくれる人です。 7)8番に書いた歌は、3番に書いた人を表す歌。 8)9番に書いた歌は、7番に書いた人を表す歌。 9)10番に書いた歌は、貴方の心の中を表す歌。 10)そして、11番に書いた歌は、貴方の人生を表す歌です。 この書き込みを読んでから、1時間以内に10個の掲示板にこの書き込みをコピーして貼って下さい。 そうすれば、あなたの願い事は叶うでしょう。もし、貼らなければ、願い事を逆のことが起こるでしょう。とても奇妙ですが当たってませんか?
853 :
名無しさん@そうだ選挙にいこう :2007/11/25(日) 23:56:25
Accessオペレータに転職したいサーバ監視員ですが、 仕事では2002、2003,2007どれが使われてるのですか? 何を購入したらいいか迷ってます。 とりあえず、スペシャリストレベルのスキルは取りたいと 思ってます。
いまうちの周りで一番多いのは2003 2000〜2002もまだ残ってる 2007はほとんどないけど これから増えるだろうから無視は出来ないね あと OpenOffice.org Base も見といたほうがいいよ
855 :
853 :2007/11/26(月) 01:51:52
【 システム環境 . 】 サーバ側:Windows2003R2,クライアントXPProSP2 Access2003 【 VBAが使えるか .】 教科書程度はなんとか・・・ 【 VBAでの回答 】 どちらでも大丈夫です。 【 検索キーワード 】 access+メールアドレス管理 データ部分をファイルサーバで共有しているmdb(2003)での話なのですが、 1.社員コード、社員名、メールアドレスを一覧表示する。 2.なんらかの方法で社員を取捨選択させる。 3.送信ボタンを押したら選択された社員すべてにメールを送る。 という処理を考えた時に、1.2のフォームをどの様に作れば良いか悩んでいます。 今はあらかじめローカルのフォームやVBAが入っているmdbへ テーブル名:T_メールテンポラリ フィールド:社員コード、社員名、メールアドレス、送信先(yes/no型) というテーブルを作っておき、form_loadイベントで、共有しているmdbファイルの 社員テーブルをT_メールテンポラリへ追加クエリでコピーし、帳票形式で 表示していますが、やはりフォームが表示されるまで物凄い時間が かかってしまいます。 抽象的な質問になってしまい恐縮ですが、 この様な処理で、ローカルへのコピー無しで実現する様なやり方がもしあれば、 教えて頂けないでしょうか?
クエリが先じゃないかな
俺も同じようなことをしており考え方は間違いはないと思うが、 問題は表示に何故そんなに時間がかかるかということだろう。 社員数はどれくらいで、表示するまでに何秒かかるのか?
テンポラリテーブルにコピーしてるってことは ローカルに書き込んでるかSWAPしまくりかだろ メモリ増やすだけで解決するかもしれんが テンポラリに書き写すのはidだけにしておいて その他はview作って表示時のみ参照すれば
861 :
856 :2007/11/27(火) 03:14:03
こんな時間に御回答いただき、有難うございます。
>>857 ぬおおお知りませんでした!!早速明日試してみます!!
>>858 質問しておいて本当に失礼極まりない話なのですが、現在
手元にクエリがありません・・・申し訳ないです。明日確認してみます!!
>>859 やっぱりこういうやり方が一般的なんですね・・・
今まで読んできた参考書ではあまり出てこなかった形の処理なので、
物凄い遠回りなやり方をしている様な気になり、質問させて頂きました。
考えてみると、どう足掻いても必要なレコードを全て引っ張ってくるという
処理は絶対必要で、どんな方法でもその時間は絶対に必要ですよね。
現在、元レコード約200件で、大体フォーム描画完了までに初回1分程度
その後20秒程度です。「物凄い」は大袈裟でした・・・色々すみません。
結果出次第ご報告させて頂きます。有難うございました!!
862 :
856 :2007/11/27(火) 03:21:41
>>860 確かに!!気がつきませんでした!!
目からうろこが落ちた気分です。
会社のPCしょぼいんで全然違うと思います。
明日試してみます!
毎回全データをダウンロードしてたのか・・・ そりゃ遅いわ。
200件程度で20秒はいくらなんでも遅すぎる。 通常なら1秒以内のはずだが・・・ データ読込み以前のデータベースへの接続で時間がかかっているような気がする。 コマンドも細かく分けて時間を計測すれば、どの段階がネックになっているかがわかるはず。
全データ一気に取り込みじゃなくて 1行づつやってると遅くなりそうだね
レコード200件に20秒ってのもかなりアレな設計だけど フォームの表示で1分てのはもうどんなことをしてるのか想像さえつかない・・・
まあHalf-Life2やりながらだけどな。
教えてください 特定のテーブルを、フォームで入力できるようにしたのですが、 入力中に入力内容を間違えた場合、エクセルのクリアコンテンツのマクロのように ワンクリックで入力内容を消すボタンを作りたいのですが、なかなか上手くいきません
Escキーじゃいかんのか?
Sub button_Clicked() Cancel = True Undo End Sub
Cancel = True は必要ないだろ?
今まで XP+Access2002 の環境で共有ファイル(NASではない)で複数パソコンから同時に開けていたのに、 誰かが開いている状態で、後からAccess2007(XP+Access2007でもVISTA+Access2007でも同様)で開こうとしても 開けない(エラーやbusyメッセージが出るワケでもなく何も起きない)という状態が起きています。 先行して開くほうが排他モードで開いているワケでもなく、Access2002が後から開く場合には無問題です。 また、いくつかのmdbファイルで試したところ同様でしたので特定のmdbファイルだけの現象でもないようです。 何かAccess2007側で必要な設定があるのでしょうか? あるいは先行して開く側で必要な設定があるのでしょうか? ご存知の方いらっしゃいましたらご教授よろしくお願い致します。 「Access2007」「排他」で検索したところ同様の現象と思われる記事を一件だけ見つけましたが その記事では「NASに置けば起きない」ことを確認したのみで根本的な対処はされていないようでした。
873 :
名無しさん@そうだ選挙にいこう :2007/12/05(水) 06:28:57
すみませんが教えてください。 フォームに入力した値がテーブルに反映するには、 閉じるか次のレコードに移動する必要があると思いますが、 フォームに入力した表示状態で印字命令をかけたい 場合などはVBAで次のレコードに移ってまた戻るか、閉じてまた戻る などにすればよろしいのでしょうか?
>>873 保存する命令をVBAでやればいいだけ。ヘルプで探してみ。
単純なのは、SendKeysで保存のショートカットキーを送ればいいけど。
うん あと、shift + enter とか
>>873 Helpで探すのも面倒だろ。これを印刷前に実行すればよろし。
DoCmd.RunCommand acCmdSaveRecord
>>873 フォームの左上に鉛筆のアイコンが出てるからそれをクリック
878 :
名無しさん@そうだ選挙にいこう :2007/12/05(水) 23:38:23
x-media倒産してたんですか!? どなたか超図解シリーズの 『ACCESSマクロアクションハンドブック(2000/2002/2003対応)』 のサンプルファイルをお持ちではないですか? 現在HPにアクセスできないため、サイトからDLできません。 HPに倒産のせいでしょうか。
最後が変な文になってる… 倒産のせいでHP閉鎖したのでしょうか
【 システム環境 . 】 WindowsXP, Access2003 【 VBAが使えるか .】 いいえ 【 VBAでの回答 】 なるべく否 名前・第一希望・第二希望をフィールドに持つ このようなテーブルがあり、 名前|第一希望|第二希望 鈴木|モモ |リンゴ 佐藤|ブドウ |リンゴ 福田|リンゴ |ブドウ 守屋|モモ |イチゴ 阿部|ブドウ |イチゴ 以下のようなレポートを作成するにはどうしたらいいでしょうか。 クラス分けで考えましたが、第一希望と第二希望で 2箇所でグループを作りたいのですが、 いい方法はありますか? -モモ希望 鈴木|モモ |リンゴ 守屋|モモ |イチゴ -リンゴ希望 鈴木|モモ |リンゴ 佐藤|バナナ |リンゴ 福田|リンゴ |ブドウ -ブドウ希望 佐藤|ブドウ |リンゴ 福田|リンゴ |ブドウ 阿部|ブドウ |イチゴ -イチゴ希望 守屋|モモ |イチゴ 阿部|ブドウ |イチゴ
881 :
873 :2007/12/06(木) 21:45:56
874,875、877さんありがとうございます。 876さんはコードには教えていただきたすかりました。
>>880 Unionクエリで擬似的に希望マスタ作れば。
select 第一希望 as 希望 from T
union
select 第二希望 as 希望 from T
そしたら、こんな風なクエリを作れるべ。
select Q.希望, T.*
from Q, T
where (Q.希望=T.第一希望) or (Q.希望=T.第二希望)
希望でグループ化したレポートにしてもいいし。
もしくは最初のUnionクエリをそのままレポートにして、
サブレポートにテーブルを指定してもいいし。
他にも組み方はあるから、どうにでもなる。
ちゅうか、好きなようにすればいいべ。
ふざけないでください
>882 Union ちょっとググッてきます。 アクセス初めてなんで、ものすごく勉強中です。
885 :
884 :2007/12/07(金) 23:56:13
>882 基本中の基本的なunionすら知らなかった自分が恥ずかしいっす。 882のやり方は、完璧に自分の欲しい結果になりました! ありがとうございます。
886 :
873 :2007/12/09(日) 05:37:15
テーブルをフォームボタンからクリックで 開き並べ替えたいのですが Me.OrderBy = "得意先コード DESC" で Tables!住所テーブル.OrderBy = "得意先コード DESC" では駄目でした。 そもそもクエリやSQLやADOなしには出来ませんか?
マクロでできるよ!
889 :
名無しさん@そうだ選挙にいこう :2007/12/09(日) 23:41:56
>888
そうです。
docmd.opentable
で開いて並べ替たいのです。
クエリを何個も作るのもと思いました。
出来るようなことが載っていたのですが、勘違いでしょうか?
>>887 どのような記述でしょうか。すみませんが教えていただけますか?
890 :
名無しさん@そうだ選挙にいこう :2007/12/10(月) 15:15:03
>882のやり方でこのようなクリエができ、 グループ化してレポートを作りました。 希望 |名前|第一希望|第二希望 モモ |鈴木|モモ |リンゴ モモ |守屋|モモ |イチゴ リンゴ|鈴木|モモ |リンゴ リンゴ|佐藤|ブドウ |リンゴ リンゴ|福田|リンゴ |ブドウ ブドウ|佐藤|ブドウ |リンゴ ブドウ|福田|リンゴ |ブドウ ブドウ|阿部|ブドウ |イチゴ イチゴ|守屋|モモ |イチゴ イチゴ|阿部|ブドウ |イチゴ 今ここで、それぞれのグループごとに第一希望と第二希望の人数をカウントしたいのですが どのようにしたらよいでしょうか? 例えば、レポートのリンゴグループに、第一希望1人、第二希望2人 といった感じです。 count関数を使ってみたのですが、グループ全体の人数になってしまい、 第一希望第二希望のそれぞれの数え方ができませんでした。
>>890 上の流れは見ていないが、
第一希望だけを集計するクエリと第二希望だけを集計するクエリを別々に作って
その二つを呼び出すクエリ作るだけじゃないの?
>>889 何に載ってたのか知らないけど、
それテーブルじゃなくてフォーム使ってなかった?
フォーム作ってOrderByでやった方がいいと思うけど、
テーブルでやるなら↓で一応できると思う。
DoCmd.OpenTable "住所テーブル", acNormal, acEdit
DoCmd.GoToControl "得意先コード"
DoCmd.RunCommand acCmdSortDescending
893 :
名無しさん@そうだ選挙にいこう :2007/12/10(月) 22:05:59
>>892 さんありがとうございます。
ACCSESS vba講座の並べ替えのところで
フォーム、クエリ、レポート、テーブルでのレコードの並べ替え方法を示します。
とあったので・・・。読み違えでしょうか。
教えていただいた方法で出来ましたので、ありがとうございます。
「組」「氏名」「身長」「体重」 のフィールドのテーブルからレポートを作り、 「組」でクラス分けしてレポートを作っていますが、 1組は身長順にソート 2組は体重順にソート のように組ごとにソート順を設定することはできますか? もしくは、身長順にソートと体重順にソートの2つクエリを作って 1つのレポートにすることはできますか?
レポートの並べ替えって、式を設定できたんじゃなかったっけ? 試してないけど、組フィールドが数値なら Choose([組], [身長], [体重], ...) とか、組フィールドが文字列なら Switch([組]="1組", [身長], [組]="2組", [体重], ...) みたいな式を設定してみたら? 記憶違いだったら悪りぃ。
>>893 フォームならMeとかFormsとかで簡単にできるんだけど、
テーブルでOrderByを使うのはちょっと面倒なんだ。
それに限らず色々できたりするんでフォーム使うのが王道かな。
>895 探して試してみます。ありがとうございます。
アドバイスお願いします。 2つの製品があってそれぞれ下記の部材でできている。 製品Aの使用部材 部材A 1個 部材B 3個 製品Bの使用部材 部材A 1個 部材C 4個 下記の受注がある。 製品A 10個 製品B 20個 必要な部材の所要数を一行のSQL文で書ける方法はないでしょうか?
追記 テーブル構成 <部材TB> 製品名 部材名 数量 A,A,1 A,B,3 B,A,1 B,B,4 <受注TB> 製品名 受注数 A,10 B,20
SQL1行はわからんなぁ クエリ2個ならできるけど。
こんなんでいいんじゃない? SELECT 部材TB.部材名, Sum(受注TB.受注数 * 部材TB.数量) FROM 受注TB, 部材TB INNER JOIN 受注TB.製品名 = 部材TB.製品名 GROUP BY 部材TB.部材名
SQLどんだけ長くなっても改行入れなければ1行ってことでいいのか
外部のデータを検索することは出来ますか? ネットで普通にやっても駄目っぽかったので・・ 今、Jリーグや天皇杯などの細部のデータを集めています。 もっぱら、Excel(2003)しか使ってません
そら「外部」が何なのかによるやろ。
>>901 お見事。
やっぱりこのスレには名人がいるね。
ただ、そのままではエラーになるので、若干訂正した。
SELECT 部材TB.部材名, Sum(受注TB.受注数 * 部材TB.数量) AS 所要数
FROM 受注TB INNER JOIN 部材TB ON 受注TB.製品名 = 部材TB.製品名
GROUP BY 部材TB.部材名;
Very Thanx
テストの結果は以下の通りあっている。狂う可能性があるってこと? <部材TB> 製品名 部材名 数量 A A 1 A B 3 B A 1 B C 4 <受注TB> 製品名 受注数 A 10 B 20 <結果> 部材名 所要数 A 30 B 30 C 80
>>907 失礼した。
905のSQLコピペしたつもりが、保存したら 「ON 受注TB.製品名 = 部材TB.製品名」句が
消えていた。(クエリで言うとリレーションの線が消えていた)
質問。 アクセス2000のリストボックスは、マウスホイールでスクロールできませんが、可能にする方法はありますか?
っWheel Redirecor
Access2007のVBAエディタはWheel Redirecor要らずなんだけど 昔からの流れで結局常駐させてるんだよなw
クエリで、 Null値が入ったフィールドと、数値の入ったフィールドを 足した数値を出したいのですが、 そのまま+で足すと、Nullのあるレコードが足されない NzでNullを0にしたら、 5+0(Null) → 50 0+2(Null) → 02 0+0(Null) → 00 のようになってしまいました。 どのようにしたらいいのでしょうか?
913 :
912 :2007/12/16(日) 01:12:41
自己すみません Nz関数を使うと"0"という文字列になってしまうからいけないのはわかります。 Nullを0の数値として足すにはどうしたらいいのでしょうか?
914 :
890 :2007/12/16(日) 03:23:05
>891 ありがとうございます! それでやってみたらできました。 再び質問ですが、
肝心の質問は一体どこへ
>>913 Nz(Null)が"0"(文字列)になるなんてあり得ないよ
Nz("0")とかNz(Null,"0")とかなら"0"になるけど
917 :
914 :2007/12/16(日) 20:17:53
ああ…寝ぼけてる… アクセスで作ったデータベースの説明の作り方の様式のようなものはあるのですか? 説明というか、仕様書というか、 こんなテーブルがあって、ここのデータでクエリを作って、このクエリからレポートを作って、 ということを、他の人に伝えるためのものです。 クエリが10こくらいあって、何がなんだかよくわからない状態になってます。
10個程度で・・・
>>917 フォームでメニュー作ってボタン押したら
イベントプロシージャかマクロ走るようにするとか
>>917 すべてVBAでやる。
そして、ソースを印刷したものを渡し一言、
「はい、仕様書」
という時代があった。言語は違うが。
921 :
名無しさん@そうだ選挙にいこう :2007/12/16(日) 22:02:58
日本語ランタイム出たのか いつの間にかヘルプファイルにPackage Solution ウィザードが追加されている件
質問です。 勉強するなら2007と2003どちらがいいのでしょうか? 2007.かなりわかりやすくなってるそうですが・・・
923 :
名無しさん@そうだ選挙にいこう :2007/12/16(日) 22:08:24
>>917 始めからアクセスのメニューコマンドに、そういうの作成する機能だるだろ
2007 だと、データベースツール→データベース構造の解析、印刷とかPDFにするとかして渡せば良い
924 :
名無しさん@そうだ選挙にいこう :2007/12/16(日) 22:09:28
925 :
922 :2007/12/16(日) 22:14:36
>>917 簡単に言えば、依存関係だろ?
「ツール」の「解析」から簡単にレポートに出せる。
が、それを解読するには自分で作れるぐらいのスキルは必要。
結局紙が無駄になるだけだからデザインで構造見たほうが速い。
これがオペの人に伝えるだけなら、図をふんだんに使った取説が
評判いい。
>>922 初めてOffice製品を触るなら2007。
ただし、会社で使用しているところはいまのところ少数派。
>>913 Null値が入ったフィールド、数値の入ったフィールド
どちらか片方、あるいは両方が数値型じゃなくて文字型だったってオチはないよな?
928 :
917 :2007/12/17(月) 00:45:53
>919 そうなっています。 でも、他のアクセス使いが自分で手を加えたいから、 中身(テーブルやクエリの関係)がどうなってるか教えてくれといわれたのです。 >920 それで、SOL文章をすべて見せたのですが、 リレーションシップのテーブルやクエリが線で繋がれた図のようなイメージで 教えてくれと言われました。 >923 >926 そんな機能があったなんて知りませんでした。 でも、やってみたんですが、200ページ!? 結局よくわからない資料が出てきました。 自分もシロウト、相手もシロウトなんで、どーしようもないです… でも、また1つ勉強になりました!
930 :
名無しさん@そうだ選挙にいこう :2007/12/17(月) 13:16:53
Nz関数は第2引数を省略した場合、Null値を受け取ったら・・・ ・クエリ内で使用した場合は必ず""(長さ0の文字列)を返す。 ・クエリ以外で使用した場合は第1引数が数値型なら0を、文字型なら""(長さ0の文字列)を返す。 改めてHELP読み返してみたんだが、なんぞこれ・・・
932 :
911 :2007/12/17(月) 21:25:18
>>929 IgMouseは最初に試したんだけどテキストボックスとかのプロパティ画面を
うまく縦スクロールさせられなかったんで・・・
933 :
929 :2007/12/18(火) 08:04:56
>>932 あ〜それはあるね。一回、スクロールバーを触ってからじゃないと
だめっぽい。あまり気にしたこと無かったけど、Wheel Redirecorは
そんなことしなくても縦スクロールOKなんですか?
934 :
910 :2007/12/18(火) 16:49:27
Wheel Redirectorは、マウス直下のウィンドウを(アクティブじゃなくても) スクロールしてくれるので、重宝してます。 モジュールがたくさんあるプロジェクトを編集していて、コードウィンドウが アクティブになっていると、いったんプロジェクトエクスプローラをクリック してそっちをアクティブにしてからでないとモジュールツリーをスクロール できなかったりするけど、Wheel Redirectorを常駐させているとコード ウィンドウがアクティブなままでもマウスさえ上に持っていけばスクロール が利くので、操作の流れがスムーズ。 これは2ペインのWindowsエクスプローラでも一緒。 フォルダツリーをスクロールさせようと思ったらアクティブなアイテムビューの 方がスクロールしだして(゚Д゚)ゴルァ!と思ったことのある人にはオヌヌメ。
すいません、アクセスでID(縦列)が例えば30まであり、 これの15から30までのレコードを削除しました。 その後新しくレコードを追加していこうと思ったんですが、 IDが15からではなく31から始まってしまいました。 自動でIDが決まるようで手動で書き換えができませんでした。 IDを15からまた続けられるようにするにはどうしたら良いんでしょうか?
>>935 オートナンバーを使うのやめれ
連番がほしかったら自前で作成しる
オートナンバーってテーブルが大きくなると極端に遅くならねえか?
>>938 具体的にはどのぐらいから??
最大値は別に記憶してるからそんなに変わらないと思うけど・・・
600万件のデータ(株価の日足)をオートナンバーのあるテーブルにインポートしようとしたんだが、 件数が増えるにつれだんだん遅くなって、最後はフリーズしたような状態になった。 それ以来、オートナンバーは使わないことにした。
941 :
935 :2007/12/20(木) 00:29:30
>>937 レスありがとうございます。
色々調べてみると、レコードが無い場合は最適化するとよいとありましたが、
レコードがある場合は最適化するとデータが消えるなど不都合があるんでしょうか?
また、この最適化とはテーブル単位ではなくてデータベース単位で最適化されるようですが、
ひとつのデータベースに複数のテーブルがある場合、そのすべてが最適化されそのその中でレコードが存在する
テーブルに不具合がでたらと思うと怖いんですが、このあたりなどうなんでしょうか?
やはり、レコードが存在する場合は最適化すると駄目なんでしょうか?
レコードがある場合は最適化しない方が良いみたいな表現が気になりましたが、
どういう結果になるのかわからず、対処しかねています。
>>941 コピーしてやってみりゃ解るだろ、ボケ!
944 :
名無しさん@そうだ選挙にいこう :2007/12/20(木) 09:57:24
【 システム環境 . 】 WindowsXP SP2, Access2003 SP3 【 検索キーワード 】 Access 2003 MDB 壊れる 不具合 破損 ACCESS2003で新規MDBを作成し、 ツールボックスを挿入しようとするとACCESSが落ちるのですが こういった経験された方いらっしゃいますか? ちなみにウイルスセキュリティZEROをいれてから現象が起こるように なった気もするけど、関係ないですよね 新規MDBの場合だけですし・・
945 :
名無しさん@そうだ選挙にいこう :2007/12/20(木) 21:14:24
アクセス2003を使ってます。 ネットワーク上でファイルを共有したいのですが、 開くと鍵がかかったmdbが表示され共有使用が出来ません。 共有モードにはなっています。 以前の職場なら可能だったのですが・・・。 なにか他に設定が必要でしょうか?
947 :
名無しさん@そうだ選挙にいこう :2007/12/21(金) 13:56:28
エクセルでデータ入力してるファイルがあるとする それをアクセスに取り込んでいろいろ設定して1週間かかるとする その間エクセル側にどんどん新しいデータなりマスターになるような新項目も増えたりする さて、完成したアクセスに対して1週間分のデータやマスターをどうやって取り込む? もちろん各テーブルのフォーマットは違う インポートして同じようにリレーション作ってからそれぞれユニオン? マスター・テーブル間の整合性崩れてわけわかめ どうやってますか?
>>947 最初に取り込んだデータはあくまで開発用とすればいいだろ。
切り替え時に「既存XLSデータの取り込み」〜「初期設定」を行うようにする。
> その間エクセル側にどんどん新しいデータなりマスターになるような新項目も増えたりする
その期間、追加作業を凍結させればいいだろ。
1週間でどれだけのデータになるか分からんが、
新システムに移行してからデータ入力させてもいいんじゃないか?
そもそもマスタとなるような項目が
1週間やそこらで追加されるデータなんて俺には想像つかんよ。
思いつき&場当たりで運用してるとしか思えん。
>>948 商品名マスターが
1 いちご
2 りんご
3 バナナ
・・・なのが
1週間後
キウイ
みかんが追加されても不思議ではあるまい?
追加分だけインポートして商品マスター2を作ったら
1 キウイ
2 みかん が出来る
これを統合して
1 いちご
2 りんご
3 バナナ
4 キウイ
5 みかん にしたとしても 取り残された追加分TBの参照先が浮いてしまう
追加作業凍結しか方法はないのかい?
それ項目増えてない
わざわざ新規テーブル(商品マスター2)にインポートせずに 作ったテーブル(商品マスター)にインポートすりゃいいだろ って話ではない?
>>951 元のエクセルのフォーマットはマスターもクソもない1枚の表なんですけど・・・
アクセス化した場合にそうなるであろうマスターテーブルやデータテーブルの更新をどうやるか?ということです
それともIDを勝手に認識して最適にインポート出来るのですか?
1 いちご 1 いちご
2 りんご → 2 りんご
3 バナナ 3 バナナ
4 キウイ
いちご ¥500 3個 1 ¥500 3個
りんご ¥300 2個 2 ¥300 2個
バナナ ¥200 5個 → 3 ¥200 5個
いちご ¥800 6個 1 ¥800 6個
キウイ ¥400 2個 4 ¥400 2個
2列以降だけインポートしても追加分のIDが未入力になって浮いてしまう 1 ¥500 3個 2 ¥300 2個 3 ¥200 5個 ¥800 6個 ¥400 2個 完成したアクセスの商品マスターからIDを検索してエクセルを置換してからインポートしかないのか その表にリンクしてるだけのマスターならそれでいいがその先まで追跡は難しい
>>947 俺だったら一括でコンバートできるモジュールを作成しておき、切替時に実行するけどな
そのやり方が想像も出来ないのだったら、その案件は他の人に任すか、外注に出したほうが幸せになれるだろう
だよなあ なんで追加分だけインポートなんだよっていう
958 :
名無しさん@そうだ選挙にいこう :2007/12/24(月) 05:35:48
Class 2ch Property Let Url(adr) my_url = adr end Property Public sub Method() ... end sub end Class クラスについて調べたのですが、どこも書いていませんでした。 教えてくれませんか。 上記のようなクラスを作成することは、できるのでしょうか?
VBAでクラス作るなんて無駄。
クラスも使えん奴は上級者ではない。
962 :
名無しさん@そうだ選挙にいこう :2007/12/25(火) 18:29:37
>>960 正直、無理なんだろうと思ってました。
でも、できました。ありがとうございます。
そのリンク先、非常に助かりました。
アドバイスをお願いします。 以下の形式のタブ区切りのテキストデータがあります。 フィールドA[タブ]1[改行] フィールドB[タブ]いいいい[改行] フィールドC[タブ]999[改行] フィールドE[タブ]100[改行] フィールドA[タブ]2[改行] フィールドB[タブ]わわわわ[改行] フィールドD[タブ]ああああ[改行] フィールドE[タブ]555[改行] (以下略) フィールド名とそのデータの区切りはタブ、フィールドの区切りとレコードの区 切りは改行です。 「フィールドA」には必ずユニークなレコードNoが振られています(必須フィール ド)ので、「フィールドA」がレコードの区切りも兼ねています。 ただし、上の例のように、「フィールドA」以外のフィールドはレコードによって 存在する場合と存在しない場合があります。 フィールドの数は実際には50個程度、レコード数は10万件程度で、上記テキ ストファイルは100万行程度あります....1レコードあたりのフィールド数は多い ものもあれば少ないものもあって、平均10個程度ということです。 これをAccessに取り込んで、50個のフィールドからなるテーブル1つを作成し たいのですが、どうやってやるのが効率的かアドバイスをお願いします。 ちなみに、このテキストデータは元々、何らかのデータベースソフトから出力 したものだと思いますが、作成元に別形式での出力を依頼することはでき ないため、何とか上記形式のデータをそのまま利用したいという趣旨です。
名簿屋の個人情報データだったりして。
965 :
名無しさん@そうだ選挙にいこう :2007/12/27(木) 11:56:44
>>963 そういうのは桐でやったら?
試用版もあるしさぁ
966 :
963 :2007/12/27(木) 12:41:49
964さん、965さん コメントありがとうございます。 確かに桐なら、そういった取り込みも割と簡単にできるのはわか っていますが(最初からそう書いておけばよかったですが、スレ 違いのため、省きました)、データの中にヨーロッパ諸語の文字 が少なからず含まれている関係からUnicodeテキストになってい るため、今回は桐が使えません。
>>966 =963
エディタで
"[改行]" を ",[改行]" に置換
↓
"[改行]フィールドA" を "[改行][改行]フィールドA" に置換
↓
",[改行]" を "," に置換
↓
"フィールド*[タブ]" を "" に置換
何か漏れがありそうだけど、旨く出来てるかなぁ?
>>968 フィールドが存在しないレコードに対応できない
>>968 >>969 969さんご指摘の通り、元々のテキストデータにすべてのフィールドが
入っていれば、簡単なんですが、一部のフィールドしか入っていないの
で、968さんのやり方では対処できないんです。
Access2007の新機能、複数値型フィールドって こういうDQN仕様に対応するためのものなのかもしんない
いや、全然違うだろ
>>963 の説明がハッキリしないが、フィールド名はデータとして落ちてんじゃねーの?
975 :
963 :2007/12/28(金) 09:53:44
>>974 > フィールド名はデータとして落ちてんじゃねーの?
はい、その通りです。
963で以下のように書いた通り、フィールド名自体もデータとして書き出されて
いて、その後に(タブをはさんで)そのフィールドのデータが書き出された形式
のテキストファイルです。
> フィールド名とそのデータの区切りはタブ、フィールドの区切りとレコードの区
> 切りは改行です。
ですので、そのフィールド名を読んでそれに続くデータをテーブルの各フィール
ドに書き込んでやる作業を繰り返せばよいのですが、Accessでこれを効率よ
くやる方法がないかというのが質問です。
965さんからアドバイスがあった通り、桐ならこれをコマンド一発でできるので
すが、Accessには同様のコマンドはないようです(たぶん)。
※桐でできない理由は966で説明済み。
なので、一発は無理にしても、数ステップでできれば....と希望しています。
やっぱVBA組むのが一番簡単だと思うけど・・
977 :
名無しさん@そうだ選挙にいこう :2007/12/28(金) 11:07:13
お話の間に失礼します。 今会社なのですが、社長のPCを新しくVISTAを購入したのですが、 ACCESS97がインストールできません。 私はあまりPCに詳しくないのですが、やり方がおかしいのか、それとも ACCESS97はVISTAに対応していないのか。。 分る方がいらっしゃいましたら、教えていただきたいです。 お願いします。
979 :
名無しさん@そうだ選挙にいこう :2007/12/28(金) 12:10:16
>>978 ありがとうございます。
色々検索はしてみたのですが、
UPしてくれた画面までたどりつけませんでした。。
おかげさまで助かりました^^
>>978 この表によると Office 2000はVistaに対応していないということになるのか?
>>980 表見てわからなけりゃMSKKに電話して訊け。
当然です。OfficeXP(2002)すら未サポートです。
983 :
名無しさん@そうだ選挙にいこう :2007/12/28(金) 13:08:53
電話して聞いてみたところ、 VISTAが対応しているのは2007と、93(聞き間違えかも・・)と言われました。
Office2000は一応動作するように見えるが、もっと使い込まないとわからんか・・・
>>975 桐は知らんのでもちろん試しもせずに言うんだけど、
そのテキストをUTF-7に変換
桐でasciiテキストとして(シフトJISとかでもいい)読み込む
桐で普通のCSVとして出力する
AccessでUTF-7としてインポート
とかやればでできそうな気がするんだけど、どうかな?
988 :
975 :2007/12/28(金) 23:52:20
>>986 アドバイスありがとう
だた、桐はまったくUnicodeに対応していないので、
そのやり方では文字化けしてしまって使い物にならない
もうVBA覚えなきゃにっちもさっちも逝かないところまで来てるのに 絶対に意地でも覚えようとしないやついるよねw