2 :
名無しさん@お腹いっぱい。 :03/06/30 14:53 ID:0HxTkYjQ
sfjs
3 :
名無しさん@お腹いっぱい。 :03/06/30 14:54 ID:16mvHCe2
2gte
つこてるけど
いた違いだろ
板違いはやめろ厨!
Accessはいいよね。俺もかなりハマってる。
真面目スレage
死守!
あさげ
で、実際のところ使い心地とかどうなの? 俺excelをデーターベース代わりに使ってばっかでAccess使ったことないけど。
なんか勘違いしてる厨がいるなぁw
データベースとしてexcelなんて話にならないほど多機能。 つーか多機能すぎて実際俺も全然使いきれてないけど。
保守
桐つかえ
正直FileMakerの方がいい。
重いよ 話は替わるがここの板のHN意外と簡単に決まりそうだがどうよ?
18 :
名無しさん@お腹いっぱい。 :03/07/01 20:43 ID:vfUwD800
age
19 :
名無しさん@お腹いっぱい。 :03/07/02 09:18 ID:8FIVctRO
使いにくいよAccess。VSSがつかえないのが痛いし。 VBAでなんでも出来る分データベース設計が疎かになって、後でかえって困る。
22 :
名無しさん@お腹いっぱい。 :03/07/03 20:59 ID:oyHhLEIO
ADPよりリンクテーブルでつないだほうが良くない?
俺もアクセス嫌い。 MDBで貰っても速攻SQLに突っ込んじゃう。
マルチユーザのロック管理とかが全然考えられて無かったからなー。 ADPとか使うとその辺、簡単にできるのかな?
何を使ってもマルチユーザのロック管理なんてできません。
26 :
名無しさん@お腹いっぱい。 :03/07/08 08:03 ID:DBuI5wsH
表形式のフォームからボタン押してそのレコードだけの一枚レポートを 表示させる方法って無いですか? Private Sub コマンド26_Click() On Error GoTo Err_コマンド26_Click Dim stDocName As String stDocName = "r_Select" DoCmd.OpenReport stDocName, acPreview Exit_コマンド26_Click: Exit Sub 今のボタンはこんな感じで、どうしても一番はじめのレコードが まず表示されてしまいます・・・
>>26 OpenReportのFilterNameなりWhereConditionなりのオプション使うのは無し?
28 :
名無しさん@お腹いっぱい。 :03/07/08 13:02 ID:2Vv6I6Cp
/ヽ / | / | / \ /\ / \ |\ / \| \/ | / | | | | |\ ヽ Vヽ | \| _ / ヽ /⌒ヽ / ヽ / ヽ / \ / | | \ /liiiiiiiiiiiiii,, Y iii.iill|/ヽ \/ ̄ \ ●〕l 〔 ●/ / \9 /  ̄ |  ̄|/ ____________________ ヽ| 」 / / \ | ̄ ̄| | < ねぇ 悪い夢見てた僕を 笑って起こして♪ /\ \旦/ /| \ / \__/ \  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ / ̄ ̄ ̄ ̄ ̄ ̄|⌒|\ \ / |⌒| ̄ ̄\ / | | \______/ | | ヽ
>>26 カレントレコードのキー項目から
新しい単票レポートを作成するか、
レコードセットのcloneを使用しているので
あれば対象レポートのレコードを表形式
フォームのbookmarkまで移動させる。
recordset.bookmark = 現在の表形式フォームのブックマーク
30 :
26 :03/07/08 21:10 ID:iBtI1CQZ
有り難うございました。VBAもアクセスも触った事が無かったので・・・ Private Sub コマンド26_Click() On Error GoTo Err_コマンド26_Click Dim stDocName As String stDocName = "r_Select" stLinkCriteria = "[No]=" & Me![No] DoCmd.OpenReport stDocName, acPreview, , stLinkCriteria Exit_コマンド26_Click: Exit Sub Err_コマンド26_Click: MsgBox Err.Description Resume Exit_コマンド26_Click End Sub 現在こんな感じです。 DoCmd.OpenReport stDocName, acPreview, , stLinkCriteria のacPrebiewを省いたらいきなり印刷されてびっくりしました・・・ 逆に、印刷プロパティを開いて印刷する引数?は無いのでしょうか。
31 :
名無しさん@お腹いっぱい。 :03/07/08 22:42 ID:hHjWeTHj
32 :
31 :03/07/08 22:43 ID:???
あ、読み違えました。 無かったことに・・・
33 :
27 :03/07/09 02:46 ID:???
印刷ダイアログは DoCmd.RunCommand acCmdPrint で出ますが、あまりお勧めはできないです。 タイミングとか初めてだと色々難しいので、、、 僕はいつも印刷ボタンと印刷プレビューのボタンを 用意してやってます。 印刷枚数が指定したいとかページを指定したいとか ならそれ用のフォームを作っちゃうって方が色々勉強になりますしね。
34 :
30 :03/07/09 06:48 ID:???
>>33 ああ、なるほど。引数としてではなくてダイアログを出すコマンドなのですね。
後は最初に出す予定のフォームから指定ページを送るとか、色々考えています。
また詰まったら教えてくださいな。有り難うございました
35 :
名無しさん@お腹いっぱい。 :03/07/09 15:45 ID:3WlcY+j2
accessみたいなレポートをガシガシ作れるフリーのデータベースソフトあります?
>35 君の人生間違ってる。色々と。
37 :
27 :03/07/10 10:41 ID:???
>>34 多少でも、お役に立てた用で良かったです。
>>35 そんなのあったら欲しいっす(w
38 :
名無しさん@お腹いっぱい。 :03/07/13 14:29 ID:v5oe19/L
>>35 Access割るしかないだろうね。
Accessのレポートで苦労してレポート専用ソフトを過去20万円くらい使ったが、
結局使えず。それで苦労してAccessだけでがんばって何とか作れるなったが。
フリーで無理だろ、Access使っとけ。
39 :
名無しさん@お腹いっぱい。 :03/07/13 22:57 ID:KRHhH3Cb
会社で使用するならAccessなんてフリーみたいなもんだろ。 レポートガシガシ作るってんなら仕事用だろうし。 まあ値段相応に、不安定で、遅くて、メンテ効率悪くて、不満爆発なんだが。
40 :
35 :03/07/13 23:51 ID:???
そうすか・・・ 諦めてオークションあたり漁ります。
あぼーん
あぼーん
あぼーん
あぼーん
あぼーん
あぼーん
あぼーん
あぼーん
あぼーん
あぼーん
51 :
山崎 渉 :03/07/15 11:18 ID:???
__∧_∧_ |( ^^ )| <寝るぽ(^^) |\⌒⌒⌒\ \ |⌒⌒⌒~| 山崎渉 ~ ̄ ̄ ̄ ̄
52 :
名無しさん@お腹いっぱい。 :03/07/16 18:27 ID:ja80KWon
レコードの新規追加ボタンを作りたいのですが OpenFormにどういう引数を渡せば良いのでしょうか
53 :
52 :03/07/16 23:14 ID:xyh7C4T0
要するに、カード型入力フォームを開くと同時に 新規レコード入力をしたいと言う事なのですが。 何とか出来ないでしょうか?
54 :
名無しさん@お腹いっぱい。 :03/07/17 00:36 ID:oZVRF3Cc
>>52 失礼ですが、質問の稚拙さからするとDAOやADOが使えるレベルではないと思います。
仮に私の仮説が正しく、かつ1つのTableから成り立つFormであるとすれば
Private Sub Form_Open(Cancel As Integer)
DoCmd.GoToRecord , , acNewRec
End Sub
とでもしておけば楽ではないかと思います。
Access使っているんですよね?
55 :
名無しさん@お腹いっぱい。 :03/07/17 07:10 ID:CHqDAk6x
>>54 今年入った新入社員でして、
本来は営業の手に負えない調査、方針のアドバイス、
会社運営に対する参謀役の部署におります。
その仕事の中でちょっと必要なシステムのたたき台を作るため
色々アクセスが必要になったので一週間前から合間を縫ってやってます。
お察しの通りずぶの素人です。
言語は汗以外やった事がないので・・・
何かアンチョコ本があれば良いのですが金があっても何しろ買う暇が(汗
56 :
54 :03/07/17 07:54 ID:???
>>55 新人さんでしたか、大変ですね。
失礼な書き方をしてごめんなさい。
>19さんのリンク先の方に書き込みをした方が、よいのではないかと思います。
もう少し質問の仕方を、考えていただいたほうが、答えるほうも、具体的で
まともな回答ができるので、レスがつきやすいと思います。
質問の仕方も難しいので、忙しい中大変だとは思いますががんばってください。
重ね重ねの失礼な言い方ごめんなさい。
57 :
52 :03/07/17 08:27 ID:???
>>56 有り難う御座いました。無事なんとか出来ました
持っている機能の知識から全体を構成するというレベルでなくて
全体を考えながら機能を探しつつ、会議の度に色々要求されまして。
やっていくうちにだんだんいい物になっていくのですが、
後で見ると構成がつぎはぎだらけ(苦笑)
何にしてもアクセスくらいは使いこなせた方が良いので、
アマゾンででも本探します。有り難う御座いました。
あぼーん
59 :
名無しさん@お腹いっぱい。 :03/07/23 17:55 ID:/BZtv/x/
あぼーん
61 :
ヶ ◆/iQf.Br2tM :03/07/23 23:07 ID:BWf0c5Mj
>>57 適当に増築していくというやり方はAccess的には結構正しいやり方
なのできにしないでパワーアップしていってください。
パフォーマンスが悪いとか機能がイマイチなど
色々批判や難があるAccessですが,むしろ増改築しつつアプリケーションを
作っていくという点では優れたツールです。
因みに以前にはAccessでビジネスソフトもよく組んだものですが
初心者の場合は直接オブジェクトにコード打ちこむよりも
マクロ作成などの補助機能を利用した方がやりやすいです。
まず動作するマクロを組みます。
マクロの作成で適当な名前のマクロに動作シナリオを書いていきます。
例えば
フォームを開く ‐ メインフォーム
とすれば『メインフォームを開く』という動作になります
次に動作させたいオブジェクトに付随する『プロパティー』の
『…時の動作』をクリックしてマクロを関連付けます。
例えば 『戻るボタン』(コマンドボタン)の クリック時の動作
をクリックして
コード,式,マクロ からマクロを選択。先ほど作ったマクロを
貼りつけて終わりです。
この方式ですと関数名やコードを打つための構造式といったものを
覚えないで済みます。SQLもSQLを直接打つのではなくて
デザインビューでマウスを使ってさくさくと組んでいきましょう。
複雑なクエリーは2段階に分けて組むとやりやすいです。
例えばA,B,Cの各テーブルからデータ抽出したいが思い通りにならない
といった場合,まずA,Bの表からデータを抜き取るクエリーを組み
そのクエリーとCテーブルを連結させるやり方で解決できる場合があります。
まあ頑張ってください。色々覚えてくると出来ることが増えてきます
そうするとなかなか楽しい作業になってきますよ。
データ入力以外はね…(ボソッ
あぼーん
63 :
bd :03/07/25 13:07 ID:LAVHBhck
AccessでDB2のテーブルにリンクしたら TIME型の表示がうまくいかない今日この頃( ´∀`)アッハッハ
∧_∧ ∧_∧ ピュ.ー ( ・3・) ( ^^ ) <これからも僕たちを応援して下さいね(^^)。 =〔~∪ ̄ ̄ ̄∪ ̄ ̄〕 = ◎――――――◎ 山崎渉&ぼるじょあ
65 :
名無しさん@お腹いっぱい。 :03/08/04 00:44 ID:BgbPDDxe
ACCESS2002でクエリーのエクスポートをしてるんですけど、 テキスト形式にした場合、○数字(@とかA)が含まれている データだけ半角スペース1個ずつ余分についてくるんですけど これって治らないでしょうか? ACCESS97ではこんな事無かったんですけど・・・
あぼーん
あぼーん
Access ADP+MSDEのシステム作るのにいい参考書ないかなぁ。 この辺りの情報ってなんか少ないね。
いや、腐るほど書籍あるし。
>>69 ACCESSプロジェクトメインの書籍でなんかいいの知ってたら教えてください。
ADO の Recordset である GUID を持つ行をフィルタしたいときにはどうすればいいんでしょうか? Dim rs As ADODB.Recordset <このへんで rs を初期化> rs.Filter = "s_GUID = {F4BB253E-DACA-47C7-86F5-1E701AA65C96}" これだとぜんぜん抽出されないんですよ… rs.Filter = "s_GUID = {guid {{F4BB253E-DACA-47C7-86F5-1E701AA65C96}}" でもダメみたい… ちなみに、あんまりこの件とは関係ありませんが、 整数型は 16bit 長整数型は 32bit レプリケーションIDは 128bit ですが、 VBA の Integer がたでは所詮 32bit までしかあらわせません。 なので VBA ではレプリケーションIDなどの GUID は 16 バイトの配列で表します。 Dim s as String s = "{F4BB253E-DACA-47C7-86F5-1E701AA65C96}" Dim a() as Byte a() = GUIDFromString(s)
72 :
71 :03/08/15 09:52 ID:???
ところで、リストボックスの各行に、違った色をつけることってできるんでしょうか?
75 :
山崎 渉 :03/08/15 22:10 ID:???
(⌒V⌒) │ ^ ^ │<これからも僕を応援して下さいね(^^)。 ⊂| |つ (_)(_) 山崎パン
76 :
山崎 渉 :03/08/15 22:38 ID:???
(⌒V⌒) │ ^ ^ │<これからも僕を応援して下さいね(^^)。 ⊂| |つ (_)(_) 山崎パン
システムテーブルMSysObjects の ForeignName って、 直接書き替えることはできますか?
78 :
名無しさん@お腹いっぱい。 :03/08/27 09:52 ID:JMm3rjJJ
79 :
名無しさん@お腹いっぱい。 :03/08/27 09:54 ID:JMm3rjJJ
まぁでも MSysObjects の各フィールドの意味とか、教えてほしいところではある。 レプリケーションのために各テーブルには一意に識別子というか GUID が割り当てられているはずなんだけど、 それはどこに書き込まれているの?とか。
80 :
名無しさん@お腹いっぱい。 :03/08/28 15:25 ID:g6hERXVh
access2000のソフトっていくらくらいすんの?
82 :
名無しさん@お腹いっぱい。 :03/08/28 15:55 ID:g6hERXVh
>81 ありがとー
accessの「データアクセスページ」の機能って どのwebサーバ上でも使用できるのですか?
IIS限定じゃ? それより〜 データアクセスページで明細行のある帳票を作る方法がわからないよ〜 Access2002だと「バンド ページ」でHelpに出ているが、Access2000には 無いのかな〜(- -; 「HF Grid」とかいうActiveXを使わなければいけないのかな〜 データアクセスページ、情報が少な杉と思うのは漏れだけでつか? 情報の少なさ、Access Workflow Designer に至っては… 使ってる人いないでしょ。(T T;
85 :
84 :03/08/29 12:06 ID:???
86 :
名無しさん@お腹いっぱい。 :03/08/29 13:29 ID:nKyilllO
AccessからODBCでOracle7につなぎたいのです。 しかし、ドライバの対応OSを見ると、対応していないようです。 あきらめた方がいいでしょうか? クライアント(win2000)→Oracle7(win4.0)
使えるよ
88 :
名無しさん@お腹いっぱい。 :03/08/31 03:12 ID:c9R0D4OG
>>86 その組み合わせのソフトが私の勤務先で動いているよ
90 :
名無しさん@お腹いっぱい。 :03/09/02 16:50 ID:wDW5xGok
型がテキストのフィールドにダブルクォーテーションを 2つ続けて入力する方法を教えてください。 文字列として""を格納したいのですが 「長さ 0 の文字列を格納することはできません」と怒られてしまいます。 初歩過ぎてどこにも載ってないので、、、助けてください!
fld = """"" fld = CHR(34) & CHR(34)
>>91 入力って書いてあるよ
"が5個だとエラーだしw
プログラムじゃなくてテーブル?から
直接入れれる方法があるなら漏れも知りたい。
>90 全角で入れるしかないでしょ
そ、それって、、、 違う文字では?(笑)
ほんとだ、、入れる手段あるのか? あと別の方法で入れた後、この入力で他のフィールドを 変更できるのだろうか??
更新クエリ UPDATE テーブル1 SET テーブル1.DATA = '""'; とか UPDATE テーブル1 SET テーブル1.DATA = """"""; のような指定でもできるみたい。
97 :
忍 :03/09/03 16:06 ID:wVpKLXEA
Accessで、SQLを入力する時に、 半角、全角やスペースのある無しで、 クエリが作成されたり、されなかったりします。 SQLを入力する時の正しい入力方法が 分かり易い形で(入力時の写真付き) 解説されている 教本や参考書、サイトはありませんか あれば教えてください。
98 :
名無しさん@お腹いっぱい。 :03/09/03 18:44 ID:y4gojCeO
>>97 いまいち状況がわからないのだけど、
デザインビューで構文エラーが出るとかそういうこと?
「半角、全角やスペースのある無しで」とわかってる以上、
そこの記述を間違えないよう気をつける以上の何が必要なのか。
100 :
97 :03/09/08 15:10 ID:5I8sAlyN
そこの記述が具体的に 明記されている、本やサイトは無いのですか。 構文が変わるごとに、 打ち間違いが、起こりやすいのです。
>>100 構文は原則半角で記述(単語間のスペースも勿論半角)。
オブジェクト名は[]で括るようにすると間違いがない。オブジェクト名を全て
半角文字で定義しておけばなお良い。(全角文字が存在しない方が望ましい)
これくらいで充分だと思うのだけど。
それでエラーが出るようならば、SQL文のロジックを疑ったほうが早い。
てか、まずはGUIでクエリ作ってそれをSQLビューで見てみるといろいろ
参考になると思う。
102 :
名無しさん@お腹いっぱい。 :03/09/14 17:40 ID:1aiG1jeF
普通の営業マンが個人で導入しても無意味だな。 ほとんど使わない。
103 :
名無しさん@お腹いっぱい。 :03/10/03 10:29 ID:nrvZVvZS
*.adp ファイルを開いたときの [ファイル]→[接続] は、 SQL Server もしくは MSDE に接続するためだけにしか使えない?? つまり、データプロバイダを指定することは出来ない?
104 :
名無しさん@お腹いっぱい。 :03/10/03 11:38 ID:nrvZVvZS
105 :
名無しさん@お腹いっぱい。 :03/10/03 11:54 ID:nrvZVvZS
106 :
名無しさん@お腹いっぱい。 :03/10/03 11:58 ID:nrvZVvZS
107 :
名無しさん@お腹いっぱい。 :03/10/03 12:03 ID:nrvZVvZS
108 :
名無しさん@お腹いっぱい。 :03/10/08 23:05 ID:CBVsWL7v
社内システム構築でアクセステーブルの構造を商品別に分割して (つまり正規化されてないカード型データベースのような構造) 構築することってあるんですか?
109 :
名無しさん@お腹いっぱい。 :03/10/11 13:19 ID:GszSfmFi
ACCESSってレポート機能がいいんだよね。 VBだと別に開発ソフト買わないと間に合わないよ。
Access2000で作ったプログラム使ってる人はWinXP・SP1/2000・SP4適用済みCD によるクリーンインストールは要注意 素のWin→SP適用では何も問題ないのに、適用済みCDによるクリーンインストール だと動かなくなる場合がある Win2000の場合だとSP3適用済クリーンインストールは動くが、SP4適用済クリーン インストールだと駄目なもの出てきて・・・鬱
111 :
NAME IS NULL :03/10/14 11:33 ID:hgBvnL9m
Access 2002のランタイムってどこにあるんだ? ダウンロードセンターわけわからん。 誰かおせーて。
>>111 ランタイムはMSDNかOffice Developer CDにしか入ってない(一般には頒布していない)のでは?
つまりこれらの購入者が開発したシステムと一緒に配布することのみが許されるのかと…(詳細ワカリマヘン)
Vector で探せばあるんじゃないか? システムとセットだろうが
>110 動かないってどういうこと? もしかしてクエリ中の関数でエラーとか?
115 :
Vss使い.たい :03/10/19 20:19 ID:pMpR+t9N
はじめまして WindowsXP Access2002環境のパソコンに、Vss6.0をインストールしたのですが Accessのメニューバーから、ツール(T)-->VisualSourcesafeが表示されるようになるはずなのに、 従来通りのダイアログが表示され、Vssを使用することが出来ません。 Office2000 Developer活用ガイドには「Accessのソースコード管理アドインは Office2000 Developer Toolsセットアップの一部としてインストールされ、 Accessの[ツール]メニュー」から直接使用できます。」とあります。 XPとAC2002の組み合わせだからVSSが使えないのかとも思いましたが、 マイクロソフトサポート技術情報287460や283228などを読むとどうやら利用できそうです。 Vss6.0も最新vss6.0cにアップしています。また、メニューバーから 表示(V)-->ツールバー(T)でソースコード管理のチェックをONにしています。 何か単純な設定漏れのような気もしますが 何故VSSが使えないのか、心当たりの方がおりましたらご教授願います。 一日中ネットを探した「VSS使い.たい」より
116 :
NAME IS NULL :03/10/20 19:23 ID:cUZE6nZ9
>>112 > ランタイムはMSDNかOffice Developer CDにしか入ってない(一般には頒布していない)のでは?
> つまりこれらの購入者が開発したシステムと一緒に配布することのみが許されるのかと…(詳細ワカリマヘン)
Office 2003 ではどうなるんだろうね。
Office Xp では用意されていた Developer Edition が発売されないっぽい。
>>115 Office XP Developer Edition のセットアップも実行しないと駄目だと思う
既に実行してたらゴメン
あと関係ないが VSS の最新は 6.0d じゃなかったっけ?
118 :
VSS使い・たい :03/10/21 17:31 ID:TskdiXRo
>>117 ええっ!?、それってOfficeXP Professionalユーザーであっても
Office XP Developer バージョンを買いなさいということ?
う〜ん、ユーザー環境に合わせたかったのですが・・・・
それならAccess2000にしましょうか。
でも、そうなるとWinXP Access2000であればVSS正しく動くの?
ってことに。・・・とりあえず試してみます。
119 :
NAME IS NULL :03/10/21 19:38 ID:Dy5xJv2p
どうしても VSS 使いたい? あ、いや、あおっているわけじゃなくて、漏れは使ったことがないもんで。
120 :
NAME IS NULL :03/10/21 21:37 ID:g0ZT+XTg
こんにちは。AccessVBAについて質問させてください。 環境はWinXP+OfficeXPです。 Accessから、DOSのコマンドラインを実行したいのですがどう してもうまくいきません。 具体的には、WinZIP(圧縮解凍ツール)を実行して特定のCSV ファイルをZIPに圧縮するという処理をAccess VBAで自動実行 したいのです。コマンドラインは以下の通りです。 Ex) C:\Program Files\WinZip\WINZIP32.exe" -a -ex _ c:\eee.zip c:\test.csv Cドライブのtest.csvをWinZIPを使って圧縮し、eee.zipという ZIPファイルを作成するというものです。 (DOS窓での動作は確認しています) 実際には、test.csv や eee.zip のパスは固定ではなくてAcc essのテキストボックス上に入力しているパスを読み込む形に したいと思っているので、どうしてもAccessからの実行を行い たいんです。 また、会社のPC環境を変えてはならないので他のツールをイン ストールしたりする事も出来ません。 もう何日も調べていますが、どうしてもやり方が分かりません。 どなたか教えてください。どうかよろしくお願い致します。
>>120 詳細に書いているようですが、一番肝心の「何がダメ」なのかが書いてないですよ。
例えば
1.shell関数でエラーが出る。
2.shell関数で呼び出してエラーは出ないが
解凍もされてなくてデータが取り出せない。
3.解凍されているが次の処理でデータが取り出せない。
4.shell関数って何ですか?
等々色々考えられますよ。
僕なら、unzip.dllでAPI呼び出しなり、それ相応のライブラリで
DOS窓を使わないようにしますけどね。
122 :
NAME IS NULL :03/10/23 01:36 ID:QLG4Ahs3
>>121 お返事ありがとうございました!気をつけて書いたつもりだったんですが、
一番肝心のところが曖昧で申し訳ありませんでしたm(_ _)m
具体的に言うと、120で書いたコマンドラインをAccessから実行する為に
色々とやってみたんです。Call関数やShell関数などを使って試行錯誤し
てみましたがだめでした。
実際には以下のようなコードを書いてみました。
---------------------------------------------------------------
★Dim ZipStr As String
ZipStr = "C:\Program Files\WinZip\WINZIP32.exe -a -ex _
C:\bbb.zip C:\test.rtf"
Call Shell(ZipStr)
→これを実行すると、プロシージャの呼び出し、または引数が不正です
というメッセージが出てしまいます。
★Dim tmp As String
tmp = "Command.com /C C:\Program Files\WinZip\WINZIP32.exe _
-a -ex C:\bbb.zip C:\test.rtf"
Call Shell(tmp, 4)
→この場合DOS窓が一瞬開いてすぐに閉じられます。エラーmsgは出ま
せんが、ZIPファイルは作られていません。
---------------------------------------------------------------
>僕なら、unzip.dllでAPI呼び出しなり、それ相応のライブラリで
>DOS窓を使わないようにしますけどね。
その方法はネットで検索をした時に見つけて、UNZIP32.DLLをダウ
ンロードして、それを使って圧縮するという方法がある事を確認
できました。
しかし今回使用するDBが会社のものなので、会社側から「元々の
環境に入っていないものをダウンロードして使うのは不可」とい
うお達しがあったんです・・・(T_T)
なので、どうにかして今ある環境(WinZip+Access)でファイル
の圧縮をしたいんです。
出来るか、出来ないかだけでも分かれば今後の対応も考えられる
んですが。。。
AccessからDOSコマンドを動かしてWinZip経由で圧縮ファイル
を作成する方法はあるのでしょうか?
質問ばかりで申し訳ありません。。。この1週間、力を込めて探
しましたが私のスキルではどうしても一人で解決出来そうにあ
りません。どうかアドバイスよろしくお願いいたします!
うちではこれでうまく動きましたが。。。 Dim ZipStr As String ZipStr = """C:\Program Files\WinZip\WINZIP32.exe"" -a -ex C:\bbb.zip C:\test.rtf" Shell (ZipStr) long名のところで"(VBAの文字列内なので""ですが)で 囲んで渡してやらないとダメなんでしょうかね。 圧縮ファイルや対象のファイルもlong名なら囲んでやればよいかと。 ってデータベースと関係ないじゃん(w
>>122 > ★Dim tmp As String
> tmp = "Command.com /C C:\Program Files\WinZip\WINZIP32.exe _
> -a -ex C:\bbb.zip C:\test.rtf"
> Call Shell(tmp, 4)
Command.com の部分
WIN98では「command.com」、WIN2000以降ではでは「cmd」
外してたらゴメン
125 :
NAME IS NULL :03/10/23 21:55 ID:Pvev0WP4
ホームページつくってaspつかってアクセスファイルから検索とかやらせると ごくたまにデータベースが開けないエラーが出ます。 しばらく開けない状態がつづきまた突然見られるようになります。 アクセス権限などはちゃんと設定していますし普段は開けます。 データーベースファイルを開けていると開けませんが、ちゃんと閉じています。 対策法をご存知のお方がいましたら教えてください。よろしくお願いします。
インターネットで公開してるページのバックグラウンドにMS-ACCESSを使ってるんですか? んなこたーないですよね。。。
127 :
122 :03/10/23 22:46 ID:QLG4Ahs3
>>123 ,124
アドバイスどうもありがとうございました!
123さんに教えていただいたコードで希望通りの
動作をさせることが出来ました。
本当にどうもありがとうございます。。。どうしても
うまくいかないので、もしかしたらAccessではそう
いう操作が出来ないのかと心配になっていました。
本当に嬉しいです(ToT)
ダブルクォーテーションで囲むとは全然思いつき
ませんでした。こちらで質問しなかったら一生気付
かなかったと思います(^^;)
>>123 >ってデータベースと関係ないじゃん(w
あっ、そう言えばそうですね!
本当はプログラミング関連の板で質問するべき
だったのかも。。。
Access=データベースという発想で迷わずこちら
に来てしまいました。失礼しました(^^ゞ
>>124 >Command.com の部分
>WIN98では「command.com」、WIN2000以降ではでは「cmd」
>外してたらゴメン
いえいえ、勉強になりました。今後の参考にさせ
ていただきます(^^)
本当にありがとうございましたm(_ _)m
128 :
NAME IS NULL :03/10/23 22:54 ID:PqbBxV89
しつもーん。 フォームを自分で作って、その中に2つ以上のレコードを同時に表示させることってのはできますかね? やりたいことは 例えば、出前の注文が次々に入ってくる。 1.山本さん 12時 そば 2.斉藤さん 13時 うどん 3.山下さん 12時30分 カレー それを、時系列的にカレンダーのフォームのようにを形作って表示させる。 見たいなことをやりたいんのですが。 どうも、フォームに複数のレコードを表示させるのがうまくいきません・・・。 フォーム→新規作成→デザインビュー でこのあとどういう風にすれば、こういうことができますか? ぶっ飛んだ質問ですいませんが、だれかご教授ください。 ほかのソフトを使えばいいのかもしれませんが、訳あって、どうしてもACCESSでこれをやらないといけないのです・・・・。
>>128 Access97以降ならサブフォームを使う。
サンプルデータベースのNorthwind.mdbをインストしてあるなら
『受注』を参照するよろし
130 :
NAME IS NULL :03/10/24 09:08 ID:ESRhBeXa
>>126 > インターネットで公開してるページのバックグラウンドにMS-ACCESSを使ってるんですか?
漏れはリンク集とか日記とか、
バックエンドは PostgreSQL で、
そのメンテナンスのためのフロントエンドに Access をつかってるよ。
ODBC 経由で。
131 :
NAME IS NULL :03/10/27 19:47 ID:tkGe9Yfq
しつもーん。 WIN2000でACCESS2002を使ってますが、 LANでACCESSを共有することってできますか? あと、 ある会社の総務課で、データベースを作っています。 そのデータを使う部署が私の総務課と、開発2課なんですけど、 私の総務課だけで、ACCESSのデータをいじくれるようにして、開発2課ではそのデータを いじくったりできないようにロックを掛ける方法がないでしょうか?
132 :
NAME IS NULL :03/10/28 07:23 ID:MBdmNYnK
>>131 >LANでACCESSを共有することってできますか?
プログラム(フォーム、レポート、マクロ、モジュール)のMDB
からデータベース(テーブル)のMDBをリンクで共有すれば良いと思います。
ロックに関しては権限の設定があると思いますので
ユーザやグループごとに設定すれば良いのでは?
>131 共有は可能だけど安定性低し。 権限を色々切りたいならC/SのDBMS使ったほうが楽かと。
134 :
NAME IS NULL :03/10/28 11:22 ID:aMgZya+1
UNIX サーバ上に PostgreSQL が動いています。 Access 2000 の MDB ファイル内で、この PostgreSQL 上のあるテーブルをリンクし、 サーバ上のレコードを MDB ファイル内のテーブルにコピーして処理し、処理後に 書き戻しています。 テーブルごとずっとロックしておくわけにも行かないので、ロックはせず、 サーバへの書き戻しの際に衝突のチェックをしています。 ほとんど追加のみで更新されることはないテーブルなので、 実際に衝突がおきたことはありません。 と、こういう処理をやっていて思ったのですが、やっていることは MDB ファイル同士、 つまりデザインマスタの MDB と レプリカの MDB の間の同期と同じことなので、 できれば同期処理を Access に任せたいと思っています。 PostgreSQL に ODBC 経由で接続し、s_GUID や s_Lineage などの レプリケーション用の特殊な型のフィールドをもったテーブルを作成し、 そのテーブルとローカルの MDB ファイル上のテーブルとの同期を Access に任せることはできるのでしょうか? つまり ODBC で接続された PostgreSQL 上のデータベースを、 Access の MDB の部分レプリカとして扱うことは出来るのでしょうか?
135 :
NAME IS NULL :03/10/28 19:03 ID:b3xxqWdw
>132 133 れすサンクスです。 セキュリティの設定も何とかできたんですけど、 最後の一歩でもうひとつ障害が、 私を管理者にして、もうひとつの課で使うところをユーザグループにして、「見るだけ」に設定しようと 、セキュリティーウイザードで進めていきまして、完成したんですが、 Aというファイルでセキュリティを設定したら 「A.mdb」というファイルと、「セキュリティの設定済み」見たいなファイルと 「・・ .bak]みたいなファイルができていました。 その後自分のPCで起動すれば、パスワードとユーザ名が聞かれて、 うまくセキュリティを設定できたのですが それらのファイルを、LANの共有フォルダにおいて、ほかのPCで使おうとすると パスワードとユーザ名が聞かれずに、普通に始まってしまいます・・・・。 ただし、ロックはかかった状態になっています。 つまり、管理者である、僕のPC上でだけ、パスワードとユーザ名が要求され、 見るだけの権限しか与えていない、ほかのPCからは普通にACCESSを起動できてしまうのです。 共有フォルダにおいておくファイルがまづかったのか、自分の設定が下手なのか、ネットワーク上での共有に詳しい方 ご教授ください。 長文ですいません。
クエリ上で、データをバイト数で絞り込むことって可能でしょうか? フィールドのデータが特定のバイト数以上であれば、表示させたいという感じなのですが。 Access、Windowsともに2000です。
>136 Accessならできるんじゃないかな。LenB()関数とかで。
>134 試してみりゃいいんでないかい?
>129 サブフォームならAccess2.0でも使えたような気がする。 AC97でなんか大幅に変わったの?
140 :
詳しい方教えて下さい。 :03/10/28 23:32 ID:AlfNli5N
すみませんが、至急で教えていただきたいことがあります。 2つのデータをリレーションシップして両データ共通のものだけを取り出すのはできるのですが、 逆にこの2つの両データに該当しないものだけを取り出す方法を教えていただきたいのですが。 仕事で急にやらなければならないことになりまして、すみませんが急ぎでアドバイスをお願い申し上げます。 例(百貨店のお歳暮顧客データとした場合) ○○百貨店は、お歳暮の売上高を上げるために、お得意様以外の、 あまりご利用頂けていないお客様への販売促進に力を入れることにしました。 そのため、A・B両データを使って、お得意様以外の顧客リスト(店舗番号別に)をピックアップしたいのですが、 ACCESSでどのようにしたらできるのでしょうか? Aデータ(お得意先リスト) 店舗番号 顧客番号 1 1000 1 2000 1 3000 2 1000 2 2000 2 3000 3 1000 3 2000 3 3000 ※ 顧客は重複していない。 Bデータ(全顧客データ) 店舗番号 顧客番号 売上高 1 1000 60000 1 2000 40000 1 3000 50000 1 4000 3000 1 5000 2500 2 1000 45000 2 2000 70000 2 3000 60000 2 4000 3500 2 5000 3000 3 1000 55000 3 2000 50000 3 3000 90000 3 4000 2500 3 5000 3000 ※ 顧客は重複していない。 この中からA・B両データを使って、 BデータからAデータに該当しないものを抽出するにはどうしたら良いでのでしょうか?
>140 クエリーのウィザードに「不一致クエリー」ってのがあるからそれを参考にしてみ。
SELECT * FROM 全顧客データ WHERE 顧客番号 NOT IN (SELECT 顧客番号 FROM お得意先リスト)
143 :
136 :03/10/29 14:50 ID:???
>>137 レスどうもです。
とりあえず、フォーム上からイベントを設け
LenB(strConv(Me![テキストボックス名],vbfromunicode))
ってな感じでやってみたんですが、表形式のフォームで現在選択されたレコード
にしか適用されないようなんですよ。(テキストボックス名=フィールドの内容)
フィールド全体をチェックできるようにしたいのですが。。。
144 :
NAME IS NULL :03/10/29 17:34 ID:oMdWj1rJ
>>143 なしてイベント?クエリに書けばいいじゃん。
ただしVBの定数認識しないので直接128って書く必要あり。
145 :
ブー :03/10/29 17:50 ID:hedny5uH
はじめまして。今、JSPでMYSQLのデータベースへアクセスするプログラムを作っています。 今回アイテムリストで選択された文字がボタンを押すとデータベースへアクセスされ、必要なテーブルが展開される プログラムを作りたいと思っています。もしヒントか何かご存知の方、教えてください。お願いします
とりあえずスレタイをよく嫁とだけ言っておく
147 :
136 :03/10/30 15:42 ID:???
148 :
NAME IS NULL :03/10/30 15:53 ID:ujSxjMTh
149 :
NAME IS NULL :03/10/30 22:12 ID:sTbt+zO/
Accessでストアドプロシージャは使えますか?
150 :
NAME IS NULL :03/10/31 04:15 ID:axrUWC9y
>>149 mdb内にストアドプロシージャを構築できるか?という意味ですか?
たぶんできないと思うけど。できたらMSDEを付ける必要ないような。
>>150 丁寧に答えていただきありがとうございました。
VBAで作った関数をストアドプロシージャの代わりに使うことは できないだろうか?
153 :
NAME IS NULL :03/10/31 12:54 ID:3HX0qPCq
VBAで作ったユーザー定義関数をクエリでは問題なく SQLから使えるのですが、 Perlなどの他のプログラムからODBC経由でSQLを発行する際に そのユーザー定義関数を使おうとするとエラーになります。 エラー内容:式に未定義関数***があります。 何故エラーになりますか?
154 :
NAME IS NULL :03/10/31 17:23 ID:wlBbyDsr
主キーって何ですか?
155 :
NAME IS NULL :03/10/31 23:49 ID:axrUWC9y
Accessの「クエリ」はストアドっつーよりビューだしなぁ。 一般的に使われている用語を敢えて離れる「MS語」はやめてほすぃ
___ __/ / /\ / _/\ ___ / ̄ ̄ ̄\/| /| ̄ .\/| / /\ | | |/\__.|/ /| ̄ ̄ ̄\/| / ̄ ̄~|/| \/_/ | |____|/ ./| ̄ ̄ ̄.| |.  ̄/__ |/ / | | | | /フ ̄/\ | ̄| ̄ ̄ ̄ |/\ .| | /| ̄ ̄ ̄\/| |/\ \/ ̄ ̄~|/| |/\ ___|/ \ \ __  ̄ ̄ ̄~|/ \/ ̄ ̄/ \/ ̄ ̄ /  ̄ ̄ ̄  ̄ ̄ ̄ (⊃) (⊃) ∧_∧ / / ∧_∧ / / ( ´_ゝ`)./ / ( ´_>`)./ / ./ / / / / / ̄ ̄ ̄ ̄/ / __(__ニつ/ age. /____|__ \/____/
158 :
NAME IS NULL :03/11/01 14:11 ID:sJELZLRi
Accessをデータベースとして、 Webページを作成しようと思っているんですが、 参考になるサイトをご存知でしたら 教えてください。
159 :
NAME IS NULL :03/11/01 16:02 ID:hqmy3kq3
>>158 「壊れない」と豪語する人もいるんですが、
実際に壊れたのを見たことがあります。
書き込みアクセスのあるサイトですが。
基本的に1ユーザ仕様のはずです。
Accessにはロック処理はないの? もし無いのなら(ちゃんとロック処理を施した)テキストファイルへの 読み書きにも劣るじゃん。
162 :
NAME IS NULL :03/11/02 12:14 ID:fz8EzMsm
access95で作られたデータベースをaccess2000仕様に変換しようと すると固まる。300M近いアクセスファイルはやっぱ無理なのか?
163 :
NAME IS NULL :03/11/02 12:49 ID:wiZVNzC0
今、Acces2002(Access2.0からずっとアップデートしてきた)で レコードが4万件程度だけど、もうそろそろ限界っぽい。 SQLserver2000に移築しようとしたが、参照整合性が全くとれない。 今まで増築増築でテキトーに作ってきた罰かな? なんか、良い方法はないですか? 一からテーブルの作り直しかなぁ・・・。
>>163 > SQLserver2000に移築しようとしたが、参照整合性が全くとれない。
SQL Server にデータをすることによって参照整合性が取れなくなるの?
MS Access で通貨型のデータを扱っているのですが、 各国の通貨が入り乱れるような場合はどのようにしてテーブルに格納すればよいでしょうか?
166 :
NAME IS NULL :03/11/02 19:47 ID:giLqeYG7
>>165 通貨型のデータそのものものは、バイナリ誤差を防ぐために
少数以下4桁の固定桁数にした整数型のようなもので、
書式は関係ないですよ。
表示方法はコントロール側の書式で自由に変えられます。
他の数値型と同じです。
167 :
NAME IS NULL :03/11/03 16:51 ID:8mvhV3eF
>>163 Access 2003でアップサイジングウイザード使えば Data Integrity は維持されるよ。
すみません。質問させてください。 クエリで取得したレコードに行番号を振りたいのですが、 どうもうまくいきません。 OracleのSQLでいうと、 SELECT rownum , 名前 , 電話番号 FROM 社員テーブル WHERE 取得FLG = TRUE ; みたいな感じです。 一度条件にあうレコードをオートナンバー型カラムのあるテーブルに入れてから 取得するといった面倒な方法しか思いつかないのですが、 なにかよい方法はないものでしょうか。 厨な質問で申し訳ないですが、よろしくお願いします。
>>135 漏れは、フォームのコピーをして一方にフォームのプロパティで「更新、削除、追加」の許可を
「いいえ」にしてまス。
変更権限者にはデータ変更できるフォームのオープンボタン(隠し属性)の場所を教えてまス。
子供だましのような手法だけど・・・
まぁ、これは同じ端末を変更権限がある人と無い人で共有してるからなんだけど。
>>162 300MBなのはデータ部分が大半だと思うので、それを一旦分離した上でコンバートかまして
データはその後インポートすればいいような気がするのだけど、的外してますか?
171 :
NAME IS NULL :03/11/04 21:28 ID:RQhXg5RY
172 :
NHGuy :03/11/04 23:39 ID:u9Xzz4RY
>>168 1.次のようなクエリを作り、test1 と名づける。
SELECT MAILLIST.CompanyName, getpos([CompanyName]) AS 式1
FROM MAILLIST
WHERE (((MAILLIST.CompanyName) Like "株式*"));
2. getpos()という関数をモジュールに自分で作る。
例
Function getpos(strpass) As Integer
Dim MyDB As Database
Dim MyRS As Recordset
On Error GoTo RecErr
Set MyDB = CurrentDb
Set MyRS = MyDB.OpenRecordset("SELECT * FROM test1;")
MyRS.FindFirst ("CompanyName='" & strpass & "'")
getpos = MyRS.AbsolutePosition + 1
RecErr:
Select Case Err.Number
Case Is = 0
Case Is = 3021
MsgBox "Error!"
Err.Clear
Case Else
MsgBox Err.Description
End Select
End Function
3.うまくいけば行番号が表示される。
173 :
168 :03/11/05 00:36 ID:???
169さんの教えて頂いたサイトのサブクエリを使用した順位付けで、 目的を果たすことができました。 ありがとうございました。 172さんもわざわざありがとうございました。 今回はなるべくシンプルな形を望んでいましたので、 関数を使用するのは避けましたが、今後の参考にさせてもらいます。 それにしても、なんでACCESSってROWNUMが使えないんでしょうか。。。
174 :
NAME IS NULL :03/11/05 05:37 ID:zNJ+UGHz
>>173 そんなこと言ったらMySQLにあるLimitをOracleでも使いたいよ。w
関係ないけど。
175 :
NAME IS NULL :03/11/06 23:20 ID:B5xy+fUT
>>170 ありがとう!確かにデータがかなーりの部分をしめてるので データ移動してコンバートかけてみます。助かりました。
リレーションシップってのがさっぱり理解できません… よい勉強サイトないでしょうか?
177 :
NAME IS NULL :03/11/08 14:03 ID:oTczC7iW
行数を表すようなフィールドがないテーブルで 何行目から何行目までみたいに行数を指定したいんですけど このようなことはできますでしょうか? アプリ側で指定行を取り出すのではなく、SQLでやりたいです。
>>177 DBの中じゃ順位なんて保証されないぞ。
後からINSERTしたものが下に来るわけでもない。
HDD上の物理的な配置に応じてころころ変わる。
できるかどうかは別にして、何の意味も無いとだけ言っておく。
>>176 @ITとか。
179 :
NAME IS NULL :03/11/08 19:43 ID:Id7VLtFs
しつもーん。 ACCESSで月ごとの集計のやり方ってのは、いろいろ調べれば乗ってるんですけど、 僕の使用してるデータベースでは月をテキスト型で 「15年11月3日」 みたいに打ち込んで使用するDBになってるもんで どうしても、月ごとの集計がうまくできません。 なんか、いい方法ないっすかね? ちなみにテーブルで抽出しようとすると 「 年 月 日」で指定しなければならず、 特定の一日しか搾り出せません・・・。こまった・・
SELECT CDate('15年11月3日'), Month('15年11月3日') Expr1000 Expr1001 2015/11/03 11 ワラタ
181 :
NHGuy :03/11/08 20:59 ID:PEd1+TN2
ロケールは?
182 :
NHGuy :03/11/08 21:11 ID:PEd1+TN2
Format("15年11月3日","yy/mm/dd")
>>179 データから作り直せ。気味悪い。
なんで日時データを文字列で入れるのやら・・・
>>178 掲示板などでよくあるログデータを5件-10件目まで表示ということを
したいんです。
今はアプリ側で取り出したデータから指定行数を切り出しているんですが、
SQL側でこれができたら良いのになぁと思うのです。
>>178 追伸。日付でソートしたデータに対して行数を指定したいということです。
>>179 選択月の入力用テキストボックス(仮にselectとする)
をフォーム(仮にmainとする)に作る。
クエリで必要情報を追加して、DATEのフィールドに
Like "*"+[forms]![main].[select]+"*" という抽出条件を設定。
クエリをソースにしたフォーム(仮にoutdata)を作る。
フォームoutdataのオープン用コマンドボタンをmainに作成
テキストボックスselectに「○年○月」と入力すれば、
その文字列「○年○月」を含む情報一覧の抽出は出来る。
あとは好きなように集計して良し。
念のために書くが、勿論「15年1月」と「15年01月」は同一視できない。
>>185 177、184、185を読んで、何をしたいのかが想像できないのだが・・・
DB上でするべき事でないように思える。
そもそも、指定行は何を以て決定してるのだろう?
日付フィールドがあるならその範囲を指定すればいいのではないのかな?
まさか、同一日で日付が記入されてるのは一行だけということなのだろうか?
yymmdd ログ内容1
ログ内容2
:
とか。
187 :
ひまで親切な人 :03/11/09 10:58 ID:OQqVuAk7
Public Function convToDate(ymd As String) As Date Dim y As Integer Dim m As Integer Dim d As Integer Dim yPos As Integer Dim mPos As Integer Dim dPos As Integer Const HEISEI_SEIREKI_DIFF = 2003 - 15 yPos = InStr(1, ymd, "年") mPos = InStr(1, ymd, "月") dPos = InStr(1, ymd, "日") y = CInt(Left(ymd, yPos - 1)) + HEISEI_SEIREKI_DIFF m = CInt(Mid(ymd, yPos + 1, mPos - yPos - 1)) d = CInt(Mid(ymd, mPos + 1, dPos - mPos - 1)) convToDate = CDate(y & "/" & m & "/" & d) End Function をどこかのモジュール内において、 「変換レイヤー」 ---- SELECT …日付以外のコラム…, convToDate([元テーブル].[日付]) AS [日付] FROM [元テーブル] ---- と、 「変換後のテーブル」 ---- SELECT * FROM [変換レイヤー] ---- というクエリを作って、
188 :
ひまで親切な人(切れましたすみません) :03/11/09 10:59 ID:OQqVuAk7
「変換後のテーブル」を使って、そのやりたい処理をするとか
189 :
ひまで親切な人 :03/11/09 11:03 ID:OQqVuAk7
すみません。「変換後のテーブル」はいりませんね。 「変換レイヤー」を使って、そのやりたいことをやれると思います
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄#ykZAfoE「 #ykZAfoE「 ―――――――――――――‐┬┘ #ykZAfoE「 #lqi=(w「T #ykZAfoE「 | #lqi=(w「T ____.___#ykZAfoE「 #ykZAfoE「 #lqi=(w「T | |<_葱看>| | #lqi=(w「T #ykZAfoE「 | / i レノノ))) \. | #ykZAfoE「 #lqi=(w「T | |(ヽl.゚∀゚ノ人/) #ykZAfoE「 | | ノ Y.ノ | | #ykZAfoE「 #lqi=(w「T 量産型を生産するっ
191 :
NAME IS NULL :03/11/09 14:10 ID:o3Jv9ZcO
GIGO(Garbage In, Garbage Out)という有難い言葉があるだろ。
糞な入力からは糞な出力しか得られない。
対処療法的にぐちゃぐちゃやってると絶対破綻するぞ。
まずは元データをなんとかしろ。
>>179
文句いう香具師にはクエリー(View)でも作ってそいつで「年月日」になった表でも見せてやる。 中は日付型に変換しとく。 .....月に99月とか入れるパターンがあったりする罠 まぁ、漏れだったら「文字列フィールドにそんなことはできねー」ってつっぱねるけどなー。
193 :
NAME IS NULL :03/11/11 21:54 ID:jVeK0E1I
>183 平成 年 月 日 と入力して、 平成 年 月 日と表示させたかったんです。 で、 「ACCESSは外国生まれなので、日付データは西暦で管理する仕様になっている」 ということを最近知ったもので、やっぱ日付型で管理するほうがいい見たいです、 がんばって作り直します。 しかし、 「平成15年11月3日」と表示させるにしても、 打ち込むときはやっぱ2003/11/3と打ち込まないといけないのですよね?
SELECT CDate("平成15年11月3日"), Format("2003/11/03", "ggge年m月d日")
196 :
NAME IS NULL :03/11/12 21:01 ID:clfMy1v+
AccessでWindowsでログインするみたいに ユーザー名とパスワードを入力させて一致したら 次の画面に行くように作ろうと思ってるんですけど、 何か参考になるサイトはないでしょうか? よろしくお願いします。
>>193 自分でルール組めば見た目上大抵のことはできるだろうが、
そもそも日付を文字列で保存するという考え方が、すっごく 変!
いいか?
時間というのは世界中誰にでも公平で、しかも必ず一定の速度で進む。
こういうデータはコンピュータ的には非常に扱いやすい。
しかし、人間の生活実態上はこれをデタラメな長さに寸断して
単位をつけている・・・月の長さがまず一定でなかろう。閏年もある。
この両者の変換ロジックを個人で組もうとしたら大変なことだ。
しかし変換しないことには大小比較(日付だから新旧比較だな)ができない。
日付のデータとしての価値が激減する。
だから、DBなり一部のプログラミング言語なりには、相互変換ロジックが
搭載されている。誰でも使う機能だからな。
それを敢えて使わんというのがさっぱりわからん。
DBを使うのであれば、データの格納形式には最大限の注意を払うべき。
表示形式と格納形式をイコールにする必要はどこにもない。
198 :
NAME IS NULL :03/11/13 02:37 ID:h1rhUjKc
Access 2002 DB:Oracle 9i でVBAからOracleのストアドプロシージャをODBC、またはADO を使用して呼び出したいのですが、(oo4oはバージョンの違い によるエラーなどで使用できない) 変数の宣言の方法やストアドの呼び出し方、エラーが起こった場合の 処理方法などがよくわかりません。 巷にはVBでoo4oを使ったストアドプロシージャの使用や、 Aceess + SQL Serverによるストアドプロシージャ実行の例ばかりで ほかの例がほとんど見つからず途方にくれております。 どなたか教えていただけないでしょうか? よろしくお願いします。
199 :
NAME IS NULL :03/11/13 13:52 ID:qFjCuE6U
>>196 ツール - セキュリティ - データベースパスワード
というのがあるぜ
200 :
NAME IS NULL :03/11/13 16:52 ID:KsKpd48D
>199 ユーザーをいくら作っても 管理者でしかログイン出来ないんだけど・・・・ 使い方がよく分からんよ
>>199 たぶんそりゃ違うぜ。w
普通にユーザマスタ作って参照するフォーム作るっつー話じゃないのか。
そこまで初歩的なサイトはあるかな。だいたいサイトは裏技集だから。
本買った方がいいぜ。
202 :
NAME IS NULL :03/11/13 18:17 ID:J0a1uqDW
>>198 パススルークエリーを使って実行できませんか?
答えを返さないようなストアドならそれでできたと
思うのですが。
203 :
NAME IS NULL :03/11/14 06:07 ID:gFzVemRx
データベースで 男なら「1」、女なら「2」って打って(いちいち女、男って入力するのがめんどくさいので) これを、フォームで表示させるとき、には男、女と表示させたいのです。 iifの使い方はhelpにありましたので、1なら男、そうでないなら女っていう風に、2種類の場合はこれで対応できるのですが、 3種類以上の場合はどういう風にすればいいのか、教えてください if 関数を使えばいいと思うのですが・・・、ルールにあってないらしく、うまく機能してくれません・・・・・。
「うまく動きません」「出来ません」「動作しないんです。」 で分かる人は少ないと思います。 「何が」うまく動かないのか。うまく説明してください。 おかしい部分をそのまま貼り付ける、、、とかね。 そうすれば答えてくれる人もいらっしゃると思いますよ。
>>203 複数の場合はswitch関数かselect〜caseで。
DB的にはマスタ作って連結する方が良い。
206 :
NAME IS NULL :03/11/14 12:14 ID:GZ2cyDg4
Key(重複なし) Data 1 男 2 女 3 不明 こんなマスタ作って連結させればよい。
正規化してないのがバレバレだな。 一から勉強し直した方が早い。
154 名前:NAME IS NULL[sage] 投稿日:03/10/15 16:39 ID:??? これからの時代を考えると最低でも 1 男 2 男(タマ無しサオ有り) 3 男(タマ有りサオ無し) 4 男(両方無いが遺伝子はXY) くらいは視野に入れておかないとね。
ま、件数次第だが、いちいちマスタでこれ持つのもどうかと思う。 こんなで正規化やってたらキリねー。 マスタテーブルでいっぱいになっちまうよ・・・
>>209 確かにたった一つのフォームだけで使用するのだったら
フォームに埋め込んでしまえとも思うけど、
DBでそういう例外入れるとあとで嫌な事になることない?
項目数が増えたり表記が変わった時にフォーム弄る破目になったり。
なにより気持ち悪くないか? 精神的に。
>>209 確かに件数次第ってのもあるけど、件数が増加するか否かってのもあるでしょ。
今回の場合は関係ないけど、件数が増える可能性がある場合は
マスタ作っといた方が、メンテが断然楽。
増える度にselect caseにcase追加するのは非効率的。
まぁ今回はこれで良いだろうけど。
select case textbox1
case 1
textbox2="男"
case 2
textbox2="女"
case 3
textbox2="不明"
case else
textbox2=""
end select
212 :
209 :03/11/14 17:18 ID:???
>なにより気持ち悪くないか? 精神的に。 禿堂。質問者のスキル逆読みして、そんなにデカいの扱ってないだろうと 思ってたんだが、キモちわるいのは確かだな。 つか、質問者は消えたんか?
213 :
質問者です :03/11/14 18:31 ID:gFzVemRx
>204 -212 解決しました、すいません、おさわがせしました。 結局 iif([ ] =1, "男 ",iif([ ]=2 ,"女 ",iif([ ]=3 "・・・・・・ と限りなくつなげていけばできるようです。ちなみにクエリ上でこれをやってます。 見栄えはよくないですが・・・・・。もっと関数の知識があれば、きれいな関数で美しく書けるそうなのですが・・・・。 EXCEL のif に相当するものが、ACCESSでは iifでできるそうです、すいません。
SELECT x, switch(x=1, 'one', x=2, 'two', x=3, 'three') FROM test xExpr1001 1one 2two 3three 4(Null)
215 :
NAME IS NULL :03/11/14 22:40 ID:gFzVemRx
213 >214 それずいぶんきれいな関数ですけど、 それ、クエリ上でもそうやってうてば使えるんすか?
216 :
NAME IS NULL :03/11/16 09:38 ID:0ItrEjun
ageageage
217 :
いなむらきよし :03/11/17 19:24 ID:UAJJXCVn
キケー!
FAQなのかもしれんが答えがみつからん教えろ 文字列の比較を case sensitive にする方法!!! imode uidの処理させようと思ったらこれでハマった
Access 2000 が Windows Server 2003で動くかやってみた人はいらっしゃいますか?
220 :
NAME IS NULL :03/11/18 19:58 ID:eViro5SU
>>219 起動するだけでいいのか?なら桶だ
ただし、完全動作するかは白根
221 :
219 :03/11/19 13:09 ID:z3meqybY
>>220 通常作業はクライアントのXPから2003のmdbにリンクしてつかうんですが
クライアントから最適化を実行すると非常に時間がかかるので、
最適化だけ2003でやっちゃおうかと思った次第です。
俺様専用メモ C:\xxx.mdbを最適化してC:\xxx2.mdbを作成 1. ↓をメモ帳に貼り付けて拡張子vbsで保存する。 2. 作ったvbsファイルをダブルクリックする。 '------------------------------- filename1 = "C:\xxx.mdb" filename2 = "C:\xxx2.mdb" cs1 = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & filename1 cs2 = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & filename2 Set je = Createobject("JRO.JetEngine") je.CompactDatabase cs1, cs2 MsgBox "最適化が終了したかもしれません。"
ところで皆さんは付属のVBAで書いてますか? VBで書いてますか? 私はVBで書いてADOとOLEコンテナ使用してます
224 :
NAME IS NULL :03/11/19 19:08 ID:bv1/QXAW
AccessをDBにWEBページを作ってみようと 思っているんですが、 AccessをDBとして作成することは可能なのでしょうか? ASPでやってみようと思っているのですが・・・
225 :
NAME IS NULL :03/11/19 20:21 ID:+vJTnwgH
>>224 Access+ASPは可能でしょう。
もう、5年前にやったことがある。
228 :
NAME IS NULL :03/11/19 23:55 ID:bv1/QXAW
>225 >226 可能なんですか! しかも定番なんですか〜 参考になりそうなサイトか何かご存知でしたら 教えてください。
>>228 ASPの解説サイトはDBにオラクルかSQL鯖使ってるところしか知りませんが
書籍ならASP3.0などの解説本をを求めればいいかと
asp.netだと開発環境に15万くらいかかりますよ
個人的にはphp+mysqlやpostgresqlの方が軽いし組みやすくて好き
>>224 アクセスセットのVBAはフォームの挙動とデータソース等のプロパティが設定しにくいです
俺はPerl/CGI+Access2000で検索エンジン運営してるよ。
本当に?
質問です 正規化したテーブルで テーブル1に商品コードのフィールドを置いて テーブル2を商品コードフィールドと商品名フィールドで構成した場合 テーブル1をフォームで入力するときに リストボックスで商品コードを選択させるときに 商品名が表示されて選択できてテーブル自体のデータには対応しているコードが格納されるようなフォームを作りたいのですが どうすればいいでしょうか? マイクロソフト公式のアクセス本を2冊隅々まで読みましたが記載されてませんでした
>>232 リストボックスの設定
コントロールソース:テーブル1の商品コード
値集合タイプ:テーブル/クエリ
値集合ソース:テーブル2
列数:2
列幅:適当に設定
っていうことじゃなくて?
>>232 テーブル1をデータ格納、2を参照元という前提で書く。
リストボックス(コンボボックス)は非連結にしてフィールドリストはテーブル2の「商品名」フィールドを使い、
選択後処理にそのリストボックス(コンボボックス)情報から「商品コード」フィールドへのdlookupで変換かます。
requeryも忘れないように。
勿論、テーブル1のopen時やレコード移動時には、逆向きのdlookup変換が必要。
使い方はhelp読んで。
235 :
232 :03/11/21 13:57 ID:???
>>233 さん
>>234 さんありがとうございます
>>233 さんの方法は本にも書いてあるのでそこまでは出来るのですが
選択時にだけ商品コードと商品名の対応が選択リストで確認できるけれど
フォームが静的な状態の時一覧する際にコードだけで商品名が見えないので
使い勝手が悪いと同僚・上司に不評なんです
彼らなんで正規化が必要なのかとか全くわかってくれないんです
>>234 さんありがとうございます
変数 = DLookup("商品名","テーブル2","商品コード=テーブル1の商品コード")
関数はこんな感じでよろしいでしょうか?
>>232 コンボボックスだったら・・
>233のようにコンボを作って、
Private Sub cbo商品コード_AfterUpdate()
Me.txt商品名 = Me.cbo商品コード.Colom(1)
End Sub
・・とかじゃだめ?リストボックスでもまぁ、いっしょでしょ。
237 :
236 :03/11/21 19:34 ID:???
上のは、Colomじゃなくて、Columnだな・・
>>235 me![商品コード] =DLookup("[商品コード]", "テーブル2", "[商品名] = me![商品名]")
これを、商品名のフィールドを入力/変更した際のafterupdateのイベントプロシジャに入れると、
「"テーブル2の商品名"と"今いるフォームの商品名"がイコールの時、
"(テーブル2の商品名と同じレコードにある)商品コード"を"今いるフォームの商品コード"に反映させる」
という動作をする。
商品名フィールド情報から商品コードを抽出する訳。
これがデータを入力する時の動かせ方。
>>234 にも書いたが、フォームのopen時やレコード移動時、つまりデータを見る時には、
商品コードフィールド情報から商品名を抽出する為の逆向きのdlookup変換が必要。
また、requeryも忘れないように。
239 :
NAME IS NULL :03/11/22 00:41 ID:1HKnbsoC
例えば第一列を商品コード、第二列を商品名としたら 連結列:1 列数:2 列幅:0cm;5cm と、第一列の列幅を「0cm」にすればいいんじゃないですか? うちはいつもそうやってますけど。
>>232 非連結テキストボックスのコントロールソースを
コンボボックス/リストボックスのColumn(1)でいいんでないの?
241 :
233 :03/11/26 13:04 ID:???
>>240 私もそれを良く使います。
DLookUpより速いような気がするし、Requeryも不要。
242 :
NAME IS NULL :03/11/28 00:45 ID:iz6D/t1E
スタンドアロン形式でのDBを作成したのですが、テーブルやフォーム、モジュールの構造を 読み取れなくする為にはどのようにしたらいいでしょうか? (セキュリティーウィザードでの保護もやったのですがログイン名などをユーザーに設定しないと できない?ためお客さんの端末の使用状況も把握しないといけません。) 要は、1回1回セキュリティーをかけるのではなく1回セキュリティーをかければどの端末に持って 行っても保護されるようなツールもしくはモジュールを知りたいです。 お願いします!!
243 :
NAME IS NULL :03/11/28 00:51 ID:y0Pfxr3x
244 :
242 :03/11/28 01:04 ID:iz6D/t1E
>>243 社内にDeveloper版があるか見てみます。
ありがとうございました。
>>242 該当mdbファイルを開いてツール→データベースユーティリティ→mdeファイルの作成
Accessのバージョンは同じである必要がある。
mdeファイルはAccessのバージョンが違うと扱えない
246 :
233 :03/11/28 13:20 ID:???
>>245 mdeだと確かにデザインの変更やコードの表示はできないが、オブジェクトの名前は見られたような。
んまぁ、起動時の設定でデータベースウィンドウを表示しない設定にし、さらにShift起動できないような処置をすればそのmdeで一覧は難しくなるけど、他のmdbからのインポートでオブジェクト名を見られる可能性はあるかも。
mda にすればいい
248 :
NAME IS NULL :03/12/02 22:59 ID:0zo3uvpx
AccessとVBを連携させる利点としてどんなものが挙げられますか?
利点なんかあるのか?(w
VBでAccessのレポート使うのは利点?
フォームでよほど凝った処理するのでなければAccessで充分かと。
252 :
NAME IS NULL :03/12/03 22:57 ID:m9jBr7Mn
教えてくださいな。Access2000でツールを作成していて、レポート出力機能をつけました。 プレビューを表示してから印字する機能と、直接印刷する機能をつけたのですが、直接印刷を行うと出力が 行われません。プレビュー表示してから印刷を行うのは大丈夫なのですが。。。 プリンタはEPSON PM-G700です。OSはWindowsXP Office2000 Premiumです。
モジュールはどう書いてんの?
254 :
NAME IS NULL :03/12/05 15:50 ID:GaCB2crP
超初心者です。 Xp+Access2000で、起動後にテーブルを表示させると大きいので (小さなテーブなので無駄な部分が多い) 大きさを調整していったん終了後、次に開くとまた大きく表示させます。 Windowsも慣れていません。スレ違いかも知れませんが教えて下さい。
255 :
◆hZNVhf/PY. :03/12/05 17:04 ID:Ml2/VoPy
Microsoft Access2000について教えて君します。 テーブルにIDと電話番号があったとします。この電話番号は -(ハイフン)を含んで保存されているものとします。 これをクエリにてID、電話番号、-(ハイフン)抜きの電話番号 の三つとして表示させたいのですが、置換に便利なsubstitute() 関数がヘルプにはあるのに実装されていないことに気付きました。 他の方法をとろうと思い、search()関数とreplace()関数を使っ て書きましたが、これもヘルプにはあって、実装はされておらず。 何か良い方法があれば教えて下さい。 03-1234-5678 ↓ 0312345678 と変換したいだけ。ただし、地域によって-(ハイフン)の 位置が変わるため、固定的にバイトや文字の数で位置を判別 することは不可。
>>255 substitute, searchともに Excel関数でしょ。
設定すりゃ Accessからも使えるんじゃない?
あと、Left, Mid, InStr, StrReverse関数を使って
プロシージャ書けばできるよ。
257 :
NAME IS NULL :03/12/05 19:56 ID:MiF/34vd
replace関数だけで出来ませんか? replace([項目],"-","") とか。。。 試してないですが。。。
>>255 あれー?Replace()関数で出来るじゃん!
結果 = Replace(電話番号, "-", "")
でも、compare引数を適切に設定しないと
正しく置換されない場合もあるよ。。。
260 :
NAME IS NULL :03/12/06 13:33 ID:TydIS/3L
MDEをMDBに変換するソフトがあったらおしえてください。 裏ソフトでもなんでもいいです
262 :
NAME IS NULL :03/12/07 03:44 ID:xmA9D5su
日付データの03/12/05 16:28:00を 03/12/05で表示したいのですがどうすればいいのでしょうか? to_date('03/12/05 16:28:00','YY/MM/DD'); でやっても何もおきないのですが oracleやsqlサーバなどでは出来るらしいのですが accessでは不可能なんでしょうか?
format('03/12/05 16:28:00', 'yyyy/mm/dd')
Access(Jet) + IISでショボWebサーバ運営 DB参照だけで書き込みしないなら、それなりなんとかなる?
265 :
NAME IS NULL :03/12/08 21:58 ID:4cx0zj+h
得意先から送られたファイルが ファイルへのアクセスが切れていますと表示されてフォームなどを操作できません オブジェクトを見るとテーブルなどを直接見ることは出来るのですが こういうエラーの問題点が何処にあるかご経験のあるお方居ませんか?
>>265 リンクテーブルになってて、リンク先のファイルが無いとか、
環境が変わってリンク先の設定がズレたとかでは?
テーブルそのものが開けない状態なんじゃないの?
267 :
265 :03/12/09 00:44 ID:???
>>266 ありがとうございます
テーブルの内容は開けるのです
自動的にデバッグが立ち上がりフォームのコードを開けるのですが
変更し、保存しようとするとファイルリンクエラーができて更新も保存できないんです
やはり環境の問題でしょうか
269 :
266 :03/12/09 01:30 ID:???
>>267 起動時に開くフォームでいきなり何らかの障害が
発生しているようですね!
あと考えられるのは、バージョンが違っているせいとか、
DBが壊れてて元々ちゃんと動かないのかも知れません。
得意先に聞いた方がよろしいかと・・・
みなさんテーブルのデザインを印刷するときはどうされていますか? コピペしてからプリントするのは疲れるんですが やっぱりマクロ組まれたりしてるのかな?
>>271 すばらしいです!ありがとうございます
またくだらない質問ですみません
フォームやレポートのopenargには配列で複数の値を渡すことは可能でしょうか?
昔 OpenArgs って Variant 型だから何でも渡せるもんだと思ってたけど String 型に Null の可能性を定義しただけなのな
275 :
265 :03/12/10 19:08 ID:???
>>269 さん
うちは2000なのですが先方は2003をお使いでした
マクロの一部に非対応があったようです
276 :
NAME IS NULL :03/12/11 18:50 ID:Jjp4dGqP
抽出条件を作っていて困っています。 フォームで、コンボボックスから選択された値を抽出条件に クエリをかけているのですが、 何も選択されていないときに全部表示するようにしたいのです。 ・条件AのときはAのみのリストを ・条件BのときはBのみのリストを ・条件が選択されていないときはAとBの両方のリストを クエリの抽出条件にどのように記述すればいいですか?
>>276 Null値で判断すればOK!
SELECT テーブル.* FROM テーブル WHERE テーブル.フィールド=IIf(IsNull(Forms!フォーム!コンボボックス),テーブル.フィールド,Forms!フォーム!コンボボックス);
または、
SELECT テーブル.* FROM テーブル WHERE IIf(IsNull(Forms!フォーム!コンボボックス),True,Forms!フォーム!コンボボックス=テーブル.フィールド)=True;
ついでだが、コンボボックスのリストの先頭行に、"Null;すべて"みたいなのを付加しておくとベター!
↓(以下参照)
マイクロソフト サポート技術情報 - 128881
[AC97] コンボ ボックスやリスト ボックスに"(その他)"を追加する方法
>>242 亀レスですが、、、
セキュリティウィザードでセキュリティかければ、何の問題もなく出来ますよ!
本件の様な場合だと、ユーザーアカウントは共通で1つ作っておけば充分でしょう。
また、ユーザーのパスワードをあえて設定しなければ、起動用ショートカット中で
コマンドオプション「/USER ユーザーアカウント名」を指定する事により、
ユーザーのログイン画面を自動的にパスさせる事も可能です。
で、〜.mdb, 〜.mdw, 起動用ショートカットをセットにして各ユーザーに配布すれば良い。
なお、モジールにはVBA側でパスワードをかけておくと吉です。
参考までに、ユーザーに与える権限としては、およそ以下の通り・・・
データベース…「開く/実行」のみ許可(「排他で開く」は必要があれば許可)
テーブル…全て不可(この場合、クエリの実行権限は所有者でないとダメかも?)
クエリ…「構造の変更」と「管理者」以外を許可
フォーム…「開く/実行」のみ許可
レポート…「開く/実行」のみ許可
マクロ…「開く/実行」のみ許可
>>276 数値型のコードを持つリストを数値型で格納するとnullに当たらないので0値判断も組み込むとベター
↑ そんな事しなくても何ら問題は無い・・・
281 :
276 :03/12/12 18:29 ID:???
みなさん回答ありがとうございます。 accessは超初心者のため、>277をどこに書けばいいのかわかりません。 現在はクエリをデザインで開いてそこの条件のところに [forms]![フォーム]![コンボボックス] と書いています。ここを書きかえればいいのでしょうか? Select文などSQLの知識とVBの知識はあるので、構文自体は理解できますが。 アクセス初めてから、こんなんばっかです・・・。
クエリに書くならSQLビューで
いま業務で Access 2000 + VBA でアプリケーションを書いています。 それはそれでうまくいっているのですが、やはり VBA では限界があります。 趣味では Sharp Develop で C# プログラミングをやってます。 できれば Access アプリケーションも C# で書きたいんですが、 Access 2003 でもあいかわらず開発言語は VBA なんでしょうか。
>>283 そんな貴方は Visual Studio Tools for Officeについて調べるのが宜しいかと。
>>283 むしろ Accessにこだわるより VC#.NETに鞍替えしたほうがアナタは幸せになれるんじゃ?
クエリの結果返ってくるレコードセットって、すべてオンメモリで処理されるんでしょうか? それとも一時的なテーブルをディスク上に確保して処理されるんでしょうか? UNIONによって一時的に数十万レコードの規模のレコードセットが返ってくるときは やはりそれを超えるメモリが必要なのでしょうか? 将来的にレコードが増えたときのことを考えると不安で不安で。 マシンに積むことのできるメモリには限界がありますし。
>>284-285 ありがとうございます。
Office 2003 からは Developer Edition がなくなってるんですね。
Visual Studio Tools for Office についても検討してみます。
Access 2000 のヘルプによると、 MDB ファイルサイズの上限 2GB テーブルサイズの上限 1GB クエリのレコードセットのサイズの上限 1GB となっています。たとえばメモリを 512MB しか搭載していないシステムでは、 仮に仮想メモリを使わなければ(ページングしなければ)、 テーブルサイズの上限とクエリのレコードセットのサイズの上限は 1GB よりも少ないということでしょうか?
>>286 ADO 等のレコードセットのことなら
クライアントカーソルならオンメモリ
>>287 アクセスVBAとVB.netだとほとんど出来ることに佐賀ないきがする
そもそも.NETってものが何なのか良く分からないっす
Access の MDI の背景に画像が貼れる様になってうれしいです、最近。
293 :
NAME IS NULL :03/12/18 19:26 ID:yv1ESTIw
質問です Accessに 数値入力 5 ▼ ―――――――――― 1 5 10 こんなふうに数値にあわせて▼を動かすようなのを 組み込みたいんだけど できますか?
おもいきりずれてスマソ
>>293 そういやそんなコントロールがあったなぁ。
Microsoft Slider Control じゃなかったっけ?
296 :
293 :03/12/18 22:56 ID:???
>>293 VB6だとスクロールバーコントロールで作れるよ
垂直ならリストボックスでも似たように出来る
slider controlて 印刷のとき小さくなんない? おれもそういうの作りたかったんだけど うまく印刷できなくて挫折した
質問です。 データベースとしてMDBを扱う場合、MDBの容量が極端に 大きくなっていくのですが、それを防ぐためには手動で 最適化するしかないのでしょうか?
>>299 Access2000以降であれば該当DDBを開いて
ツール→オプション、全般タブにある、閉じるときに最適化する
のチェックを入れる
以降、そのMDBは閉じるとき最適化されるよ
301 :
NAME IS NULL :03/12/21 23:26 ID:/2bjNVVH
>>299 それ、例のレコード単位ロックにしてるってやつでしょ?
302 :
NAME IS NULL :03/12/22 14:38 ID:r5st6IdP
ASPファイルからAccessのユーザー定義関数を使っているクエリを 呼び出したいのですが、「式に未定義関数”ユーザー定義関数名”があります」 というエラーが返ってきてしまいます。 クエリ自体は正常に動くのでユーザー定義関数にはエラーがないと思うのですが、 ASPではこのような呼び出しは出来ないのでしょうか?
303 :
NAME IS NULL :03/12/22 16:49 ID:cU6AwYWA
IIf関数がいまいちうまく使えないんですが・・・ AというテーブルとBというテーブルがあり、 Aの中にはa,bというフィールドがあり、Bの中にはc,dのフィールドがあり、 bとcをリレーションを張ったとします もしbの値がcの中にない値が入っている場合に「無し」と表示させたいんですが d:IIf(A.b=B.c,"B.d","無し") こんな感じでやっているんですが上手くいきません どのようにやればいいんでしょうか?
>298 >AというテーブルとBというテーブルがあり、 >Aの中にはa,bというフィールドがあり、Bの中にはc,dのフィールドがあり、 >bとcをリレーションを張ったとします 上記がレコードソースでフォーム上でのフィールドの表示だと仮定 AとBのフィールド名が重複しない場合 =IIf([b]=[c],[d],"無し") 別フォームからは =IIf([forms]![フォーム名]![b]=[forms]![フォーム名]![c],[forms]![フォーム名]![d],"無し")
305 :
303 :03/12/22 20:08 ID:cU6AwYWA
>>304 すいません、bとcは同じフィールド名でしたので
Aはa,b、Bはb,cということになります
ですので、
IIf([A]![b]=[B]![b],[c],"無し")
としているんですが、どうしてもAのbとBのbが等しくないデータは表示されません
これではダメなのでしょうか?
>>305 joinの仕方がinner joinになってない
left outer joinなど片側外部結合にしないとそもそも結合キーが等しくないデータが存在しないよ
307 :
NAME IS NULL :03/12/23 14:41 ID:oGjan/ci
えくせる しか使ったことのない初心者デス あくせす では行列の表示を入れ替えることってできるんですかあ どなたか 優しいお兄さん教えてください
行列の入れ替えって、SQLでまともにやろうとするとかなりめんどくさいよね?
行の入れ替えはOrder Byの条件付け次第、 列の入れ替えはフィールド順を変えるだけ、 というのとは意味が違う?(^_^;)
まさか行と列を入れ替えるってこと? 123 456 789 ↓ 147 258 369 みたいに
311 :
NAME IS NULL :03/12/23 22:17 ID:9wvbNO7E
そうなんです えくせる だと256列の、表示が限界ですよね それ以上のインポートしたいテキストデータがあるんですけど・・・ そして、縦方向にサンプルを揃えたいんですけど 行列の入れ替えはエクセルでは簡単ですけど あくせす ではどうしたらいいのかわからなくて・・・
フォーム上で 例えばX + Y = Z でX Y を入力でZを出したいんですが 印刷時にZの値が最初のレコードの値から変わりません どうしたらいいでしょうか
レプリカを作って同期をしています。 同期をするときにレプリカセットが一覧できますが、 もはやなくなってしまったレプリカも一覧に出てきてしまいます。 気持ち悪いので消せないものでしょうか。 MSYSReplicas をいじるのはさすがに怖いので、 なにか安全な方法はありませんでしょうか。
クロス集計ってそういうもんじゃないと思う
>>315 単に作業のしやすさのためだけに表示上入れ替える、
ってのができるといいんですけどね。
データ型つうものを考えろや。
>>312 XとYは入力(TextBoxかな?)させて、
Zはその値で計算させてるんですよね?
XとYの値が変わったら、Zの値をどうやって
計算させてますか?
「最初のレコードの値から変わりません」の
意味もよくわからないのですが...
>>307 こういうのがやりたいのかな?
Excel使いはデータ型いいかげんな人が多いから全テキスト型。
DAOでスマン
Function InverseMatrix(strTableNameIn As String)
'Dim省略
Set Db = CurrentDb()
Set rsIn = Db.OpenRecordset(strTableNameIn)
strTableNameOut = strTableNameIn & "_行列交換"
rsIn.MoveLast
rsIn.MoveFirst
varRecords = rsIn.GetRows(rsIn.RecordCount)
'出力先テーブル作成(存在チェック省略)
Set tbl = Db.CreateTableDef(strTableNameOut)
tbl.Fields.Append tbl.CreateField("ID", dbLong, 5)
tbl.Fields("ID").Attributes = dbAutoIncrField 'いちおうオートナンバー付与
For i = 1 To rsIn.RecordCount
tbl.Fields.Append tbl.CreateField("項目" & CStr(i), dbText, 255) 'テキスト決め打ち
Next
Db.TableDefs.Append tbl
Set tbl = Nothing
rsIn.Close
Set rsOut = Db.OpenRecordset(strTableNameOut)
For intCLoop = 0 To UBound(varRecords, 1)
rsOut.AddNew
For intRLoop = 0 To UBound(varRecords, 2)
rsOut.Fields(intRLoop + 1) = varRecords(intCLoop, intRLoop)
Next
rsOut.Update
Next
rsOut.Close
Set Db = Nothing
End Function
なんか気持ち悪いな・・・
321 :
312 :03/12/25 11:05 ID:???
解決しました ありがとサンクス
322 :
x :03/12/26 11:16 ID:ZlpNcPHE
Oracleのテーブルへの(ODBC経由の)リンクテーブルを作成する関数を作成しています。 元来、手動で作成していたのですが、 ・開発中なので元テーブルの構成が頻繁に変わるので手動では面倒。 ・リンクテーブル名の先頭にユーザー名が付いてしまう。 という動機からです。 で、パスワードを保存した状態でのリンクテーブルの作成までは順調にできたのですが インデックスの設定ができずに困っています。 手動の時もOracleのビューはインデックスが自動取得できないようで、作成時に インデックスを選択するダイアログが表示されます。 主キーにするフィールド名は決まっているのでそれをコードから登録時に同様に 設定したいのですが、うまく行きません。 これについての情報が見つかっておらず、ほぼ当てずっぽうで書いています。 ヒントの在処をご存じの方はいらっしゃいませんか?
323 :
x :03/12/26 11:18 ID:ZlpNcPHE
Sub CreateLinkTables() Const lc_sPrefix As String = "UUU." Const lc_sMark As String = "MMM" Const lc_sPKField As String = "KKK" Const lc_sConnect As String = "ODBC;DSN=DDD;UID=UUU;PWD=PPP;DBQ=BBB;" Dim l_Database_Src As Database Dim l_TableDef_Src As TableDef Dim l_TableDef_Dst As TableDef Dim l_sName As String Dim l_colTableDefs As Collection Dim l_Field As Field Dim l_Index As Index Set l_colTableDefs = New Collection Set l_Database_Src = OpenDatabase("", dbDriverNoPrompt, True, lc_sConnect) For Each l_TableDef_Dst In CodeDb.TableDefs l_sName = l_TableDef_Dst.Name If Len(l_TableDef_Dst.SourceTableName) > 0 And InStr(l_sName, lc_sMark) > 0 Then Debug.Print "DEL: " & l_sName CodeDb.TableDefs.Delete l_sName DoEvents End If Set l_TableDef_Dst = Nothing Next For Each l_TableDef_Src In l_Database_Src.TableDefs l_sName = l_TableDef_Src.Name If InStr(l_sName, lc_sPrefix) = 1 And InStr(l_sName, lc_sMark) > 0 Then Debug.Print "ADD: " & l_sName Set l_TableDef_Dst = CodeDb.CreateTableDef(Mid(l_sName, Len(lc_sPrefix) + 1)) l_TableDef_Dst.Connect = lc_sConnect l_TableDef_Dst.Attributes = l_TableDef_Dst.Attributes Or dbAttachSavePWD l_TableDef_Dst.SourceTableName = l_sName If l_TableDef_Src.Indexes.Count = 0 Then For Each l_Field In l_TableDef_Src.Fields 'l_TableDef_Dst.Fields.Append l_TableDef_Dst.CreateField(l_Field.Name) If l_Field.Name = lc_sPKField Then Set l_Index = l_TableDef_Dst.CreateIndex(l_TableDef_Dst.Name & "_PK") l_Index.Fields.Append l_TableDef_Dst.CreateField(l_Field.Name) l_TableDef_Dst.Indexes.Append l_Index Set l_Index = Nothing Exit For End If Set l_Field = Nothing Next End If CodeDb.TableDefs.Append l_TableDef_Dst Set l_TableDef_Dst = Nothing End If DoEvents Set l_TableDef_Src = Nothing Next l_Database_Src.Close Set l_Database_Src = Nothing MsgBox "Done.", vbInformation End Sub
324 :
x :03/12/26 11:24 ID:ZlpNcPHE
あ、環境は、Access2003、Access2000形式MDB、DAO3.6です。
いま Access 2000 を使っています。 このたび Office 2003 を買おうと思っているのですが、 Access 2000 と Access 2003 の間で同じ mdb ファイルをいじれますか? 一度 Access 2003 で開いちゃうと Access 2000 ではもう開けない なんていうことになりませんでしょうか?
326 :
x :03/12/27 20:30 ID:???
>>325 Access2003では、Access2000形式とAccess2002-2003形式を変換なしにいじれます。
Access2000では、Access97形式を…… _| ̄|○ ヒドイメニアッタ
>>326 変換無しにいじれますか、安心しました。
>>327 そう、いつの間にかファイル形式が変わってたりしましたよね?
330 :
:03/12/28 17:39 ID:8gJ0gDw/
テーブルの入力の際、「ルックアップ」をつかうとべんりですよね? でもこのルックアップの際のリストに表示させる値って、 そのテーブル自身からは取り出せないんですよね? つまり、そのフィールドによく入力される値をリストアップして候補にする、 なんてことができれば便利だなぁ、と思うんですが、無理でしょうか? ----------- キャベツ キャベツ トマト キャベツ ----------- なんてすでに入力されている場合、新規レコードの入力の際の ルックアップの候補に「キャベツ、トマト」の順で表示させたいんですけど
331 :
こわれた。 :03/12/29 11:22 ID:kSQnXoQy
なんかデータベースが壊れてしまった… いくつかのモジュールが尻切れになってしまったり。 新しいMDBファイル作って、壊れたMDBファイルからインポートして復旧したけど、 全体としてのデータベースのサイズが30%くらい少なくなってしまった。 壊れたデータベース 10MB 復旧後のデータベース 6.5MB まぁ特に欠落したレコードも無いようなので大丈夫そうなんだけど、なんで? 壊れたほうのデータベースだって、一日一回くらいは最適化してたんだけどなぁ。
332 :
クエリのフィールドの説明 :03/12/29 18:31 ID:kSQnXoQy
テーブルのデザインでは、各フィールドごとに テーブルの説明をつけることができますよね? クエリでもクエリのデザインで「右クリック→プロパティ」で、 フィールドごとの説明を書き込めるみたいなんですが、 これってどこで表示されるんでしょう??
333 :
レポートのコントロールのイベント :03/12/30 20:01 ID:XXN3A+N7
レポートでは各コントロールにイベントは発生しないんですか? テキストボックスの背景色を、その内容に応じて変えたいんですが。
334 :
レポートのコントロールのイベント :03/12/30 20:02 ID:XXN3A+N7
条件が多いので、条件付き書式ではやりたくないんです。
335 :
レコード移動後のイベント :03/12/31 00:37 ID:OAWCXjqq
Current イベントはレコードの移動が行われる場合に その直前に発生するイベントです。 したがって Current イベントでは 「今まさに立ち去らんとしているレコード」が見えています。 これに対してレコード移動の直後に発生するイベントは無いのでしょうか?
336 :
クエリ結果におけるレコードの追加 :04/01/02 12:49 ID:Mcr5Okxu
選択クエリを作成すると新規レコード入力用の行がある場合と無い場合があります。 これってどういう条件で決まっているんでしょうか? たとえば二つのテーブルの直積をとる単純なクエリを考えます。 片方のテーブルのレコード数が6、 もう片方のテーブルのレコード数が3、だとすると クエリ結果は18行のレコードとなります。 このクエリ結果には新規レコード入力用の行がありません。
そのクエリが更新可能かどうかで決まる。
338 :
クエリ結果におけるレコードの追加 :04/01/02 12:57 ID:Mcr5Okxu
あ〜わかった。 クエリ結果のレコードについて、 あるレコードに対する変更が他のレコードに影響を与えないような クエリの場合には新規レコードの追加のための行が出現するんだね。 つまり、新しいレコードが追加されたときに 関連するテーブル全体にわたって 再度クエリをかけないとダメな場合は 新規レコードの追加のための行は出現しない、ということか。
339 :
クエリ結果におけるレコードの追加 :04/01/02 13:00 ID:Mcr5Okxu
340 :
txtファイル”削除” :04/01/03 15:36 ID:wREPHqSk
accessにてエクスポートしたtxtをメール送信後 削除したいんですがどのように書けば削除できますか? よろしくお願いします
342 :
txtファイル”削除” :04/01/03 16:22 ID:wREPHqSk
343 :
新米君 :04/01/03 21:00 ID:WWGwcJHW
新米プログラマです。 VBにてアクセス97のMDBに対して固定長で256文字の固定長を取り込んでいます。 \ . - () エン コンマ ハイフン 括弧 含んでいます 実行時エラー 3075でとまってしまい困っています。それも納期月曜ですやばいです。助けてください → qdfTemp.SQL = SQLstr 'クエリーを定義 FsizeCount = Val(FileLen(inFile)) Open inFile For Binary Access Read As #intFileNo Len = Len(JYUDAT) Do Until FsizeCount = 0 Get #intFileNo, lngRecordCnt, JYUDAT(256の大きさのTYPEを定義している) If FsizeCount = 0 Then Exit Do End If Close #intFileNo DAT1=JYUDAT.DAT1 ・ ・ ・ Call IsNull_ALL 'NULLを空白""に置き換える SQL = "" SQL = SQL + "INSERT INTO 工場DATA (" & _ "●●番号,何●口,お●●●,●●●,運賃," & _ "●●番号,●●月日,●●,●●区分,●●区分," & _ "品番,●●●●,品名,材質,●●," & _ "数量,単位,単価,コードNO,図面番号," & _ "●●,●●●,備考,●●日,●●予定日," & _ "●●日,●●数量,分納累計,●●●済,マーク) VALUES ('" & _ DAT1 & "','" & DAT2 & "','" & DAT3 & "','" & DAT4 & "','" & DAT5 & "','" & _ DAT6 & "','" & DAT7 & "','" & DAT8 & "','" & DAT9 & "','" & DAT10 & "','" & _ DAT11 & "','" & DAT12 & "','" & DAT13 & "','" & DAT14 & "','" & DAT15 & "','" & _ DAT16 & "','" & DAT17 & "','" & DAT18 & "','" & DAT19 & "','" & DAT20 & "','" & _ DAT21 & "','" & DAT22 & "','" & DAT23 & "','" & DAT24 & "','" & DAT25 & "','" & _ DAT26 & "','" & DAT27 & "','" & DAT28 & "','" & DAT29 & "','" & DAT30 & "')" Call SqlExecute(SQL, "testdata.MDB") Function SqlExecute(SQLstr As String, MDBfile As String) Dim DB As Database 'データベースオブジェクトを定義 Dim qdfTemp As QueryDef 'クエリーのオブジェクトを定義 Set DB = OpenDatabase(MDBfile) 'データベース名称を指定しMDBをオープン Set qdfTemp = DB.CreateQueryDef("") ' ""は名前の表示されないテンポラリ的なクエリー Debug.Print SQLstr 'DEBUGPRINT qdfTemp.SQL = SQLstr 'クエリーを定義 qdfTemp.Execute 'クエリーを実行 DB.Close 'MdbをCLOSE End Function
>>343 最初からエラーが出るのでしょうか?それとも途中で出るのでしょうか?
最初から出るのであればSQLがおかしいと思いますし、途中で出るのであれば、元データまたは取得後のデータが書き込みフィールド型に対して適合していないのかもしれません。
あと気になるのは、Access(MDB)の場合テキスト型フィールドに空白文字列("")は格納できないと思いましたが…
345 :
新米君 :04/01/03 22:32 ID:WWGwcJHW
ぜひともご教授願います。m(__)m ここで3075が出ます→ qdfTemp.SQL = SQLstr 'クエリーを定義 この掲示板見て 変数は全部 MID(変数 & Space(8),8)こうやってスペース入れました AAAAAAAAAAAAAAAAAAAAで256文字の取得には成功しています。ということはクエリの間違いではないとおもいます。 MDBで使えない文字列おしえてください '←これはダメだときいたことがあるのでないです。 それ以外に使えない文字列教えてください。 文字コートUNICODEに変換して格納すると'01733109' などが '0 1 7 3 ' になってしまいます。 chr(0) は格納できるのでしょうか? 詳しいことのってるHPしってたら教えてください 先頭の伝票番号ぶぶんだけ インデックスはい ですが重複するデータ書き込みに行くことはないのです。 データ型はテキストです。値要求はいいえ 空文字列の許可はい インデックスいいえ フィールドサイズは各切り取りするサイズにしています。これに例えば 5文字のフィールドに6文字ほりこむとアウトでしょうか?
346 :
新米君 :04/01/03 22:39 ID:WWGwcJHW
神の降臨お待ちしてます。m(__)m 今自分でもWEBと本にらめっこちゅう 納期月曜なんで助けてマジで
347 :
NAME IS NULL :04/01/03 23:25 ID:00I4mXLU
Accessのフォームに貼ったテキストボックスに 文字列を入力することで、さまざまな検索機能を実装しているのですが、 インクリメンタルサーチはどうやっても実装できないんでしょうか? インクリメンタルサーチ実現のために使えるイベントってありますか?
Changeとかではダメってこと?
349 :
NAME IS NULL :04/01/04 08:19 ID:bl3pzlao
>>348 テキストボックスのキーイベントはたしかに発生しているんですが、
別のコントロールにフォーカスが移動するまで
Value プロパティが更新されないんです。
>>349 だったら、value = trueと明示的に指定してあげればいいじゃない
351 :
:04/01/04 20:18 ID:XHsDwE5w
Kさん 好循環 Aさん 悪循環 (健康体) (喘息) 1.(天国・霊界が喘息であるかないかを決める) 2.K 喘息でない人 A 喘息の人は は体力がある 体力がなくなる 3.K A 行動力、五感(嗅覚)が鈍り感性が変化する。 4.K&A 天国・霊界は異常な感性の人間は本来人に迷惑をかけ るから外に出てはいけないと思っている。 5.K 変化なし A アトピーになる 6.K 正常な感性 A 外に出なくなりさらに異常な感性になる。 7.K 正常な人間 A 異常な人間(レッテル) 8.K&A 死 9.K&A 来世 10.K&A 天国・霊界は異常な人間は人に迷惑をかけるので行動 を抑制する必要があると思っている。 11.K&A 天国・霊界が喘息であるかないかを決める 12.K 喘息でない A 喘息である 13.K&A 1.に戻る これは事実。広めようぜ 解決法:寝て起きて、やな気分でも、続けるけること。 体力をつけると感覚が正常に戻り、 アトピーも快癒に向かう。 目安としてグランドを10週くらい。 あとはウォーキング 2.3時間を目安にウインドーショッピングや本屋めぐり 鼻に変な違和感があったり、気分の悪い時は、 お腹の中の空気を出さなくてはならない。 口をしっかり閉じたまま、口の中に空間を作り、 口の中にできた空気を吐き出す。 これを100回から200回。
352 :
x :04/01/05 11:39 ID:pD2nKvIY
>>322-324 ODBCリンクテーブルへのインデックス設定、やっぱり誰もご存じないですか?
無理なのかなぁ...
もしかして、インデックスじゃなくてoracleのビューを取り込むときの主キーのことなの?
354 :
x :04/01/05 13:41 ID:Ewh+aBVn
>>353 そうです!!それです!!
(インデックスっていうと意味が違ってしまいますか)
何かヒントはありませんでしょうか?
355 :
x :04/01/05 13:44 ID:Ewh+aBVn
>>353 要は「固有レコード識別子の選択」ダイアログでの選択をVBAから
行いたいのです。
>354-355 や、広い意味では一緒だと思うけど、文章から索引だと思ってましたから、 あれ?ビューにインデックスつけてるの?とか思っただけ。 >「固有レコード識別子の選択」ダイアログでの選択 あー、あれね。 結論から言うと「僕は諦めた」。 ごめんなさい。お役に立てなくて。。。。・゚・(ノД`)・゚・。 昔(oracle触ってた頃)は色々考えてたけど、 別の役に立つもん作った方がよさげだったので それ以上踏み込まなかった。 今はoracleあんま触ってないので環境もありゃしない。
357 :
x :04/01/05 14:53 ID:???
>>356 どもです。
> 結論から言うと「僕は諦めた」。
やっぱりですかー。
難しいのかな。
MSへの質問権が余ってるから使ってしまおうか。
俺も昔別サイトで質問立てて、無理っつー結論になったキヲク。 DAOにもそのへんのプロパティが無かったキヲク。
359 :
NAME IS NULL :04/01/06 18:54 ID:wdtp64b6
Access2000をCGIと連携させて使っているのですが、 よく言われているように同時にAccessのmdbファイルに問い合わせがかかると mdbファイルは壊れてしまうのでしょうか?
見事に壊れます 10クライアントぐらい同時にやると
>>360 排他処理、遅延処理がうまくいかないってことか?
っていうかそこまでして使いたいのなら、要するに「mysqlでも使え」
ってことなんだけどさ
362 :
NAME IS NULL :04/01/07 01:50 ID:RDoobj/Z
質問させてください。 ローカルに顧客情報mdbファイルがあるとします。 その顧客情報を一覧表示したり、検索したり、ソートしたり、いわゆる顧客管理ソフトを、 windowsアプリケーションのごとく作成することはできるのでしょうか? できればアクセスの入っていないマシンでも、動作するソフトがいいのですが。 できるとすれば言語とか、何がつかえるのでしょうか? どうかご教授ください
>>362 一番簡単なのはVB+ADO(orDAO)で開発。
364 :
x :04/01/07 10:25 ID:???
質問です。 SELECT A.*, B.* FROM (SELECT * FROM X) AS A, (SELECT * FROM Y) AS B みたいなサブクエリって、Access97では使えないと思っていたのですが、 あるとき、この手のSQLをAccess2003で書いていたら、いつの間にか SELECT A.*, B.* FROM [SELECT * FROM X]. AS A, [SELECT * FROM Y]. AS B っていう風に変換されてまして、この書き方だとAccess97でも使えました。 僕はずっと知らずにいたのですが、これは"Documented"な仕様なのでしょうか?
それはM$を直接調べたほうが早いだろ。ノウハウならともかく、 公式仕様かどうかは検索するしかないよ
366 :
NAME IS NULL :04/01/07 19:02 ID:wx4EMKG3
359です。 ツール>オプション>詳細 のところで排他制御関連の設定項目があるのですが、 これらを設定してもmdbファイルは壊れますか?
Access 2000 を使っています。 VBA でのファイル入出力に際しての文字コードを指定することはできるのでしょうか? 現在ファイルを Open してそのファイルに String 型の変数を Print すると Shift JIS で出力されています。 Access 2000 VBA では内部的には Unicode で処理されているのでしょうか? だとすると Line Input ステートメントでのファイルからの読み込み時には Shift JIS -> Unicode の変換が自動的に行われているということでしょうか? さらに疑問なのは、ファイルの先頭が FF FE で始まる Little Endian な Unicode ファイルであっても、Unicode としては読み込んでくれていないようです。 FE FF で始まる Big Endian な Unicode ファイルや EF で始まる UTF8 ファイルも ただしく認識していないようです。つまりすべて Shift JIS ファイルであるかのように 扱われているようなのです。 VBA のファイル I/O で、Shift JIS, Unicode BE, Unicode LE, UTF8 を 正しく扱うにはどうすればよいのでしょうか?
>>366 実際やられてみてはどうでしょう?
排他ロックとかで、エラーでちゃうかも知れないけど。
>>367 分かる範囲ですが。。。
>VBA でのファイル入出力に際しての文字コードを指定することはできるのでしょうか?
No
>Access 2000 VBA では内部的には Unicode で処理されているのでしょうか?
Yes
変数に格納した値をLenBとってみれば分かるかと。(半角でも2バイトとなるはず)
>Shift JIS -> Unicode の変換が自動的に行われているということでしょうか?
Yes
>つまりすべて Shift JIS ファイルであるかのように扱われているようなのです。
強制的に(たとえUnicodeでも)S-JIS > Unicode変換を行っている為かと。
>VBA のファイル I/O で、Shift JIS, Unicode BE, Unicode LE, UTF8 を
>正しく扱うにはどうすればよいのでしょうか?
1.(S-JISだけになるように)仕様を見つめなおす。
2.外部で変換してくれるようなコンポーネントを探す。
3.自分で変換機能作っちゃう。
#自分はよくEUCのデータと変換をするが、VBAでやらず(やれないので)に
#外部PGを利用してS-JIS変換してから読んだり書いたりしてます。
#面倒くさいのですが。
>>362 今、まさに俺はVB + ADO with Data Environmentで作成中。
フレームワークができたら、お手軽キットとして公開しようとも
おもっている。
もちろん、接続関係やMDB最適化などはbasモジュールとして
分離しておき、コード内では呼び出すだけにしてあるよ。これら
をすべてPublicで宣言しておいて、あとは変数のこどく使える。
メンテナンスもしやすい。
370 :
48*8 :04/01/08 04:36 ID:3FQ9TQU5
Kさん 好循環 Aさん 悪循環 <日本> 完成版
(健康体) (喘息)
1.(天国・霊界が喘息であるかないかを決める)
2.K 喘息でない人 A 喘息の人は
は体力がある 体力がなくなる
3.K 変化なし A 行動力、五感(嗅覚)が鈍り感性が変化する。
4.K&A 天国・霊界は異常な感性の人間は本来人に迷惑をかけ
るから外に出てはいけないと思っている。
5.K 変化なし A アトピーになる
6.K 正常な感性 A 外に出なくなりさらに異常な感性になる。
7.K 正常な人間 A 異常な人間(レッテル)
8.K&A 死 9.K&A 来世
10.K&A 天国・霊界は異常な人間は人に迷惑をかけるので行動
を抑制する必要があると思っている。
11.K&A 天国・霊界が喘息であるかないかを決める 12.K 喘息でない A 喘息である
13.K&A 1.に戻る
これは事実。広めようぜ
解決法:寝て起きて、やな気分でも、続けるけること。
体力をつけると感覚が正常に戻り、
アトピーも快癒に向かう。 目安としてグランドを10週くらい。
あとはウォーキング 2.3時間を目安にウインドーショッピングや本屋めぐり
絶対に直す方法:
よく海外に行ってアトピーが治る話を聞くが、基本的に日本の中のことだけなので、
海外に行くとほとんどの場合体力をつけると治る。 日本の中であっても、体力をつ
けると治るはずだが、 様々な理由により、霊界の存在がばれてしまい、 この失態が明
るみになるので、治さないようにしている。よって、絶対にアトピーを治すには、 海外
に行き体力をつける。
http://life.2ch.net/test/read.cgi/atopi/1035703616/l50を参照
リンクテーブルで PostgreSQL に接続しています。 テーブルをクリックするともちろんテーブルの内容を見ることができるのですが、 クリックしてから表示されるまでに10秒ほどまたされます。 テーブルのサイズは整数のフィールドが6、それが30レコードほどあるだけです。 パケットモニタで見てみると、サーバの5432/tcp から即座にデータが 返ってきています。にもかかわらず表示されるまでに10秒ほどかかるのです。 これは何か設定が悪いからなのでしょうか? それともリンクテーブルというものはそういうものなのでしょうか?
372 :
371 :04/01/10 09:43 ID:uDSX3oUw
いろいろと調査してみた結果、ODBCマネージャに問題がある ことがわかりました。OS は Windows XP Professional で、 Access 2000 なんですが、これが問題なのかも。 と思って、ODBCマネージャを正常な状態に戻すためだけに MSDE 2000 Revision A をダウンロードしてインストールしました。 直りました。
373 :
371 :04/01/10 10:14 ID:uDSX3oUw
374 :
NAME IS NULL :04/01/10 19:28 ID:uDSX3oUw
テーブルのプロパティの「説明」の文字列って、 VBAから参照できますでしょうか? MSysObjectsテーブルなどにメモ型として 格納されているのかとも思ったんですが、 そう簡単にはいかないようです。 TableDefs オブジェクトのプロパティコレクションに はいっているのかともおもって探してみたんですが、 違うようです…
375 :
NAME IS NULL :04/01/10 19:54 ID:uDSX3oUw
げ、やっぱり Description プロパティだったよ… 簡単にVBAからいじれるんだ…
376 :
NAME IS NULL :04/01/11 21:53 ID:xySGFlC6
Access のツールバーにはユーザ設定で いろいろなボタンを登録することができますが、 そのボタンイメージを既存の ICO ファイルなどから 簡単に取り込むことはできませんでしょうか??
377 :
NAME IS NULL :04/01/11 22:00 ID:xySGFlC6
できました。ども。
378 :
NAME IS NULL :04/01/12 08:10 ID:Qdx2iOKd
ああ〜 戯れに、フォームに画像を貼り付けてみたら、 MDBファイルのサイズが一気に増えました。 10MB→48MB やっぱりいらないや、と思って画像は削除したんですが、 MDBファイルのサイズは大きくなったままです。 悲しいので最適化をやってみたんですが、ほとんど変化なし。 48MB→46MB 泣く。
>>378 内部にバイナリデータとしてどこかに格納されている。
380 :
NAME IS NULL :04/01/12 19:15 ID:7MUg9jRd
>>379 その領域って、永久に再利用されることはないの?
もしそうなら…データベース製品としてはありえないことのような…
>>380 普通は取り込むんじゃなくて、一つテーブルを作って外部への
リンクで呼び出す。
で、フォームの飾りとしての画像類は消す方法が確かあった。
382 :
x :04/01/13 10:59 ID:???
>>322-324 >>352-358 この件に関してMSの無償インシデントを使って問い合わせた結果を
遅ればせながらご報告します。
-----
CREATE UNIQUE INDEX <インデックス名> ON <テーブル名>(<フィールド名>)
なるSQLを発行してください。
-----
という、拍子抜けするほどシンプルな解決法でした。
おかげさまでツールが完成しました。
ついでに、
>>364-365 こっちの方も聞いてみたんですが、
-----
ドキュメントには見つかりませんでしたが、正しい使い方です。
-----
とのことでした。
>>381 > で、フォームの飾りとしての画像類は消す方法が確かあった。
う、消えないよ…
内部的にはなにか特殊なテーブルのBLOBとして格納されているんだろうか。
それにしてもフォームごと削除してもMDBファイルのサイズが変わらないとは。
最適化も効果なし。
384 :
x :04/01/13 15:54 ID:???
>>383 新しいMDBを作って、テーブルとかフォームとかをドラッグ&ドロップで
引っ越しさせるとどうなります?
隠しオブジェクト、システムオブジェクトを表示して、 片っ端から開いてみて それらしいデータ探して見れ
新規MDBを作成して、すべてインポートしる。 それで解決
387 :
331 :04/01/13 20:19 ID:???
>>386 そう、その方法だと解決できるんですが…
MDBファイルってそういうものなんでしょうか…
そういうものです。 だいたいテーブルのレコードを削除しても、その領域が残ったままになります。 つまり使いつづけるかぎり、MDBは増大していきます。 そこで最適化が必要となります でもExchangeServerもいまだにJETベースなんだよね 大丈夫なのかな?
389 :
初心者 :04/01/14 16:29 ID:???
アクセスでエクセルの vlookup関数のようなものはできますか? 番号を入力したら別項目にそれに該当した データが入力されるというのを作りたいんですが
390 :
NAME IS NULL :04/01/14 20:09 ID:FONo+8kF
条件に一致する日付のデータを抽出するフォームを作っています。 日付はテキストフィールドを2つ使って期間で入力させています。 (XXXX/XX/XX)〜(XXXX/XX/XX) どちらか一方に日付として存在しない日(2004/02/31)などを 入力してクエリをかけるとエラーが出て困っています。 (式が正しく入力されていないか、複雑すぎるため評価できません。 たとえば数式に複雑な要素が多すぎます・・・・。) これを回避する方法はありませんか?
391 :
NAME IS NULL :04/01/14 21:04 ID:D81+JUg1
392 :
390 :04/01/15 02:31 ID:???
>>391 いや、もちろん規則していますが、オペミスというか
2003/11/31とか間違って入れてしまうとダイアログの嵐になってしまうんですよね・・・。
なんかいい方法ないかなー。
SQLにする前にIsDatetとかでチェックしてないの?
IsDateね。タイプミスしてしまった。
>390 テキストボックスの書式をyyyy/mm/ddにすればいい
>>390 誤入力を抑制する方向で考えるなら(連続して多くの件数を入力するとかでなければ)、
カレンダーコントロール等を使って直接日付指定させるというのもおすすめ。
職場用に作ったやつの日付入力は、常にテキストボックス(直接入力)と
カレンダー入力用フォーム(ボタン入力)呼び出しボタンをセットにしてある。
勿論処理前にチェックも入れてるけど。
397 :
NAME IS NULL :04/01/15 16:33 ID:XPmdWg8G
ACCESS2000でmdbに最適化をかけるとクエリが極端に遅くなるという不思議な 現象を経験された方はいらっしゃいませんか? 単にmdbが壊れてるだけなのかな・・・
398 :
390 :04/01/15 17:54 ID:???
レスありがとうございます。
>>393 こういうのを知りたかったんです!
これ調べて組み込みます。
>>397 念のため、空の MDB ファイル作って
テーブルとかクエリとか全部インポートしておいたほうが安全かと。
>>397 よくぞ、違いに気付きましたね!
でも、クエリオプティマイザの仕様でそうなるのであって、別に壊れてる訳ではないよ
詳しくは、サポート技術情報[209126]を参照すべし
401 :
NAME IS NULL :04/01/16 01:21 ID:noUnd11x
データベース部分とプログラム部分をべつの.mdbわけるってのを見かけるけど そういう場合って、ADOだとかDAOを使って別のmdbのテーブルを操作するの?
>>401 リンクテーブルじゃねーの?
(っていうか1.0のときにそうした気がする・・・)
>>401 私はテーブルリンクで行っています。
ただ、データMDBのパスが変わったりするとリンクしなくなるので、システム運用段階では工夫が必要です。
リンクテーブルマネージャで手動で1回再リンクすれば済む、というのであれば問題ないのですが、
インストール先が想定できない場合やメニューカスタマイズされたMDEでリンクテーブルマネージャが使えない場合、ADOXとか使ってデータMDBと自動的に再リンクするようなしくみをプログラムMDB側に作っておかしないと実用が難しくなりますです。
404 :
NAME IS NULL :04/01/16 14:42 ID:WFt2Q+dL
Option Compare Database に面食らった。 いままで Option Compare {Binary | Text} だったし。
・Database モード Access のみで使用できるモードです。データベースの文字列を比較するときに適用され る、国別のID にしたがって並べます。日本の場合は、Binary モードと同じ結果になりま す。 ・Binary モード 大文字/小文字、全角/半角、ひらがな/カタカナを区別したUnicode 順に並べます。 ・Text モード OS の国別情報の設定によって並べ替え方法が決まります。日本の場合は、大文字/小文字、 全角/半角、ひらがな/カタカナを区別しない50 音順に並べます。
>>401 うちも基本的にはリンクテーブル。
レジストリにPC毎に対応するデータmdbの場所等を保存して、
起動する毎に参照、リンクを更新してる。
で、更新時は単一のプログラムDBをLAN上の全てのPCに一斉に上書きする。
408 :
397 :04/01/16 17:28 ID:???
>>400 私の説明が舌足らずでした。すみません。
>>397 の「最適化」とは
ツール(T):データベースユーティリティー(D):最適化/修復(C)
のことです。
ACCESSなうえにレジストリまで弄るとはヽ('ー`)ノカンベン
うちは、データとプログラムのmdbは一緒のフォルダとしていて 起動する毎にCurrentDBからパス生成してリンクを更新してる。 っていうか、データとプログラムを一緒にしてるのって メンテナンスしにくくないですか?
だからACCESSなんだって。
>>411 俺はプログラム部分はVBで作っているが?
413 :
400 :04/01/16 22:43 ID:???
>>408 だから、DBを最適化するとクエリの最適化情報が失われるって事なんですよぉ〜
真意がご理解頂けなかったみたいなので、一応補足しておきます・・・
414 :
NAME IS NULL :04/01/16 22:44 ID:BR1c0B+n
最適化より VSS で再作成が最強 しかしフォーム等の説明が消える諸刃の刃
>409にとってレジストリは神聖な領域らしいな
417 :
NAME IS NULL :04/01/17 20:17 ID:A0zcU6Tf
すみません、非常に低いレベルの相談だと思うのですが、どうしても FAQが見つかりません。 MS ACCSESS 2000 での話しです。ACCESS上でデータの入力をするとき、 既存のレコードがいくつかあり、その中の空白の文字列のフィールドの レコードに、10と入力し、次のレコードに11と入力、ここで下矢印を押して 次のレコードに移動すると、勝手に、「12」が入力されてしまうのです。 もー、勘弁して欲しいのですが、どこでこの機能を停止できますでしょうか?
418 :
NAME IS NULL :04/01/17 21:07 ID:QaIiV9GN
>>417 オートナンバーになっている、とかじゃないですか??
419 :
NAME IS NULL :04/01/17 21:23 ID:A0zcU6Tf
>>418 早速のお返事ありがとうございます。
いえ、なっていません。テキスト型でも、この現象が出てしまうのです。
勝手に入力されるミスが恐くて恐くて・・・
>>419 なにか式がうめこまれている・
かもしくは、どこかにオートナンバーの数値が入るような別の
ボックスがあると見た。
421 :
417 :04/01/17 22:06 ID:A0zcU6Tf
>>420 お返事ありがとうございます。
単にMDBをACCESSで開き、テーブル(7000件ぐらい入っている)名をダブルクリックして開きます。
そして、縦に空白が連続しているテキスト型フィールドの一つに、10と半角で入力し、
FEPがONになっているので、一度Enterを押し下線を消して決定します。そして下矢印を押し
下のフィールドに移動、ここで、11と同じように入力します。次に下矢印を押すと
このフィールドに、自動で、12が入力されてしまうのです。
式とかそう言った高度な話ではないような気がするのです。
テキスト型との事ですが、そのフィールドの他の設定はどうなってますか? 既定値とか、書式とか。 また、そのフィールドにAとかBって入力するとどうなりますか?
Access 2000 からの機能だろ 切り方は知らないけど
おーホントだ。なるなる(w こんな機能イラネ。 全然知らんかった。
426 :
417 :04/01/17 22:34 ID:A0zcU6Tf
>>422-425 みなさん、ありがとうございます・・・切れないのこれ?(号泣
なんだかものすごく変なんですよ。
10,11→12
10,12→14
10,13→自動入力なし
10,9→自動入力なし
月曜日,火曜日→自動入力なし
A,B→自動入力なし
+1と+2の時だけ自動みたい・・・勘弁して欲しいです!
みなさん、本当にありがとうございました、しかし、なんだなぁ・・・
オートコンプリートOFFにすればいいんじゃ? と思って試したがそれでもヤパーリ直らんな。 こんな機能イラネ
ちなみに当方2003だが同じ状況でつ
429 :
NAME IS NULL :04/01/18 00:11 ID:0pSYbmS4
おー、、こりゃ便利だ(w ユニーク生成簡単にできるな(w
>>427 おそらく、オートコンプリートがらみのフラグか何かが混じって居るんだろう。
仕様でもなんでもなく、便利と思って付けた機能が実は、特定の場合におい
てはどうしようもないうざい機能になった
それだけの話なんだろう。
431 :
NAME IS NULL :04/01/18 11:43 ID:O5SAgrhy
VBA って、Structure ステートメントはないのでしょうか? Windows の API で構造体へのポインタを受け渡しするものがあるのですが、 こういう API は VBA からは呼び出すことができないのでしょうか?
432 :
431 :04/01/18 12:19 ID:O5SAgrhy
Type ステートメントでしたね…
名前、数、結果の3つのフィールドがあり [名前]はリストボックスから選び、 [数]は[名前]が入力されると自動で決まり [結果]は[数]*10とします 今後名前のリストを増やす時にVBやマクロを編集せずに すむ方法はないでしょうか、自分ではなく まったくの初心者が使うもので 長い上にわかりずらくて、すいません
434 :
433 :04/01/19 14:20 ID:???
自分で出来ました スマソ
435 :
NAME IS NULL :04/01/19 14:54 ID:uUxchYdR
すみません。超初心者なのですが、助けてください。 初めてaccessを使っています。 宛名ラベルをつくりたいと思い、 317人分入力済みのテーブルを基にレポートのプレビューを出しているところです。 しかし何故か177人目から表示されないんです。 なんせ初めてなもんで、途中でいろいろとどこかを扱ったりしてます。 何が原因かわからなくて困っています。 じつは時間がありません。あさってまでには問題解決したいです。 やさしい方、助けてください!!
436 :
NAME IS NULL :04/01/19 15:26 ID:8Pv4Pi+x
たすけて・・
>>435 表示されないとはどういう現象?
1)178人目からプレビュー画面が真っ白
考えられる原因:Windowsのリソース不足
確認用テスト:プレビューを出した時、レポート下のページ番号を
178人目表示用に変更して移動。
2)データが177件目から先に進まない。
考えられる原因:レポートのデータソース
確認用テスト:レポートのデータソースを確認する。
SQLが書かれているならそれをクエリーで作って、件数がちゃんと
317人分出るか確認する。
他にも原因はありそうだけど、まず現象がはっきりしないと。
それとレポートのデータソースの記述も。
438 :
NAME IS NULL :04/01/19 16:10 ID:vogU0c9x
accessで作成したposデータテーブルと分析ツールを、DB2に 乗せ替えようと思います。同じような経験のあるかた、アドバイス お願いします。
439 :
NAME IS NULL :04/01/19 22:37 ID:KNA0zH/2
accessで住所録作成中なんですが .を...と3回打つと…に変わっちゃうんです。 メルアドなんで変わっちゃったら困るんです。 どうにかならないですかね?
どうにか? オートコレクト(ぼそ
441 :
NAME IS NULL :04/01/20 00:26 ID:AaDNIlka
440さんありがとです。 そんな機能がついてましたねー。 ようやく思い出しました。住所録完成ですー。
442 :
NAME IS NULL :04/01/20 15:20 ID:AHrfLEfF
>>437 435です。
せっかく考えていただいたのにちょっと無難しすぎて理解不能です・・
ワードで宛名ラベルやってみたら、178人目以降もちゃんと出てきました。
何故だかよくわからないのですが。
もうワードでやります。
どうもです!
先日、クライアントからいきなりアクセスのデータを渡されて、 使い方もわからず困っております。 これまではエクセルでデータを渡されていたので苦労はなかったのですが…。 そこで、「初心者は必ず読んでおけ!」といった本があればオススメして いただきたいのですが、よければアドバイスください。 取り急ぎ、「データベース」で閲覧可能な情報を、 エクセルで開くようなことはできるのでしょうか? 現在確認できる情報を、たとえばイラストレータやクォークなどの 別アプリケーションに転載したいのですが、 どこをどう操作すればいいやら……_| ̄|○ これを機に勉強しようと思います。初心者すぎて申し訳ありません
>>443 使いまわしのきくCSVにでもエクスポートしてみれば?
>>443 1) エクセルで、[データ]→[外部データの取り込み]→[新しいデータベース クエリ](MS-Query)を実行。
2) データソースの選択で、[MS Access Database]を選択。
3) データベースの選択で、目的のMDBファイルを開く。
4) クエリウィザード−列の選択で、使用可能なテーブルとクエリの一覧が表示されるので、
とりあえず、何か1つテーブルを選び '>' ボタンで列を追加。
5) 後はひたすら '次へ' ボタンで進み完了。
6) 最後に取り込み位置を指定すればOK!
7) 4)で複数のテーブルやクエリがあった場合、ワークシートを切り替えて1)〜6)を繰り返す。
以上
446 :
443 :04/01/20 23:21 ID:???
>>444 、445
どうもありがとうございます。
とりあえず445でお教えいただいた方法で試してみます。
なんとか仕事がはかどりそうで…
本当にありがとうございました
447 :
NAME IS NULL :04/01/21 14:47 ID:kg8lfRWs
win98のPCで作ったアクセスのレポートをwin2000のマシンで開こうとすると "0x77fcc641"の命令が"0Xfffffff8"のメモリ参照しましたが。メモリが"read"になることができませんでした。 というエラーメッセージがでてアクセスが落ちてしまいます win98、win2000ともにaccess2000を使っています 同じような現象に遭った事がある、解決策を知っているという方いませんか?
初心者です。 フォームに3つのコンボボックスと1つのテキストボックスがあります。 1.コンボボックスには各々別のマスターテーブル(フィールドA,B)のAの値を表示します。 2.テキストボックスにはプルダウンで選択された値に対応するBの文字列を3つ連結して表示します。 3.作成した文字列を結果テーブルに格納します。 ルックアップでプルダウンにAの値を表示すること、 Aを連結した文字列をテキストボックスに表示することはできました。 (テキストボックスのコントロールソースに=[コンボ1]+=[コンボ2]+=[コンボ3]) それで、以下の方法を教えてください。 ・Bを連結した文字列をテキストボックスに表示する方法。 ・結果を結果テーブルに格納する方法。 よろしくお願いします。
初歩的な質問かもしれず申し訳ないのですが、どなたか教えていただけると幸いです。 Webのフォームで入力したデータを、 perl(CGI)で、microsoft accessのテーブルの内容を更新することは可能でしょうか。 また、そうしたことを易しく解説してあるHP等があれば教えてください。
>>449 可能ですが、
そういう検索すれば、わかる質問はどうかと・・・。
452 :
NAME IS NULL :04/01/22 00:58 ID:7DmWZOnm
重複しないレコードの取得で質問があります。 重複させたくないフィールドを指定していするには どうしたらよいのでしょうか? DISTINCTを使うとSELECTで指定したすべてになって しまいますが、これを、、、 SELECT DISTINCT A, B, C FROM 〜 とあったら、BとCは重複しても良いが、Aが重複していない レコードを抽出するというふうにしたいのです。
454 :
453 :04/01/22 03:12 ID:???
と思ったら・・・ SELECT A, MAX(B) AS BB, MAX(C) AS CC FROM テーブル GROUP BY A; で出来るね。ゴメン
456 :
やばい :04/01/22 10:38 ID:???
すみません 教えて下さい 売り上げを入力する画面があって、支払い価格を入力する際、 画面表示では、品物の種類で選び、データ上はその品物の支払い価格で計算 されている様にしたいのですが。 社員の中に、得意先の身内がいて支払い原価がばれるとまずいので。 日本語がへんですみません。
457 :
NAME IS NULL :04/01/22 13:17 ID:6nyayVQ6
>>456 コンボボックスを使用。
値集合ソースはselect [金額],[品名]の順
連結列=1
列数=2
列幅=0cm;10.0cm
※列幅の1つ目は0、2つ目は適当な数値で。
458 :
やばい :04/01/22 14:06 ID:???
>>45 ありがとうございます。
やってみます。 多謝
459 :
やばい :04/01/22 14:08 ID:???
>>456 テーブル構造が分からないとなんとも。。。
そもそもそれをAccessで実現するのは難しいだろ
見ようと思えば手段はいくらでもあるんだから
461 :
やばい :04/01/22 15:03 ID:???
>>460 たしかに上記の方法だと、直接テーブルみれば、
ばれるのはわかってますが、あいてはただの事務員なので、
入力画面で見えなければ大丈夫だろうと思っているのですが。
単価マスタ
100g 20
200g 35
300g 40
入力画面
発注先 部数 単価(表示は重さで)
単価が重さ別なので、表示は重さにしたい。
しかし自分たちが見るレポートは単価で確認したい。
ほかに良い方法があれば教えてください。
462 :
447 :04/01/22 15:18 ID:???
>>461 別テーブルに原価マスタがあってリレーションで単価マスタと結合してるの?
単価マスタって命名がわかり難いですね、売価マスタ、卸値マスタってこと?
一番ばれない方法は、オペレーション用MDBと管理用MDBを別々に用意する。
オペレーション用MDBからは売価マスタしか参照できないようにする。
管理用MDBからだけ原価マスタ、売価マスタを参照、操作できるようにする。
464 :
461 :04/01/22 16:29 ID:???
この単価マスタは、業者への支払い原価のことです。 客への請求の単価は直接金額を入力です。 MDBを2つにわけて、一回の入力で どちらにもデータが登録されるのですか? ちょっとぐぐってきます。
Accessって難しくない? 単一のデータ入力ならものすごく楽だけど、 きっちり正規化やって、サブシステムがいくつもあって、マスタ をよく弄ることになるとウィンドウやサブフォームが増えてくるし、 そうなるとフォーカス移すたびにアップデート&コミットしようとするから 整合性制約がまともに作れないじゃないですか。 ADP使うとこの辺解決するの? C#やVBで作るのとどっちが楽?
>>465 は?
それ、単純にDBの仕組み理解していないだけじゃない。
設計が糞に3000jet
整合性制約をプログラムで実現してるのだろうか・・・
470 :
NAME IS NULL :04/01/25 17:14 ID:Fafj+mEN
Access厨には話が難しすぎたか。 整合性制約は、トリガないからプロシージャで書くこともあるけど、 単なる外部キーの参照制約でも問題になる。 データ分析がしっかりしてるんでこの参照制約がたくさんあるんだよ。 やっぱりコミットのタイミングが、フォーカスがレコードから外れたときって 決まってるのは、トランザクションやアサーション的な整合性制約を意識 しない設計を行うことを前提としての仕様なのかな。
>>470 君、ひどいよ。
僕はMySQL厨なのにさ 謝れ。さもないと、泣くぞ
472 :
NAME IS NULL :04/01/26 13:28 ID:nnYYdGrV
>>470 フォームに直接テーブルを関連付けた
お手軽プログラムしか書いた事がない
坊やの寝言は要りません。
>>470 > やっぱりコミットのタイミングが、フォーカスがレコードから外れたときって
> 決まってるのは、トランザクションやアサーション的な整合性制約を意識
> しない設計を行うことを前提としての仕様なのかな。
決まってないよ。
それはフォームのデータソースとして直接レコードセットを関連付けているときだけでしょ?
DAOにだってトランザクション制御機能あるじゃん。
>>470 が一番ACCESS厨な罠
そんな実装許されるのは素人のACCESSアプリもどきだけ
475 :
NAME IS NULL :04/01/26 21:51 ID:ltZsp6yp
Office Pro がすべてのPCに入ってるせいで、ACCESS 使って DB 作れといわれますた データ入力部分だけ ACCESS のフレーム使って、PostgreSQL で C/S型DB作りましたが、何か?
476 :
NAME IS NULL :04/01/26 23:07 ID:pnmZMnR7
>>475 フレームってなんですか?
フォームと勘違いしてるんなら首吊ってください。
フォームの中のフレーム・・・じゃあないだろうな(w
VBA の代わりに C# になってくれ。 次のバージョンからはそうなるのか?
>476 君がVB使えないのは分かったよ。 もう一度勉強してからまたおいで・・・
一人智将が紛れ込んでるようですな
ACCESSスレだもの、タダの℃素人だよ。
℃素人同士、仲良くしろよな。
,,、 (・_・) <アレテキタ? .゚しJ゚
>>482 智将=知障
という意味ではないかと思われ
非連結コントロール多用 明細表示にサブフォーム使用かつ VBA 多用 上記で VB 移行
Access って、トリガ機能ありましたっけ?
488 :
NAME IS NULL :04/01/29 11:58 ID:6iArGRQK
レポートプレビュー画面より印刷するときに部単位で印刷をしたくないんですが どのようにプログラム書けば大丈夫ですか? 部単位でした印刷できないためかなり印刷に時間かかってるので大変なんです よろしくお願いいたします
489 :
まり :04/01/29 21:13 ID:eyv0Sf2F
アクセスのオートナンバーがかかったテーブルのレコードを消してしまった場合、 どのようにしたら、もとのレコードナンバーでレコードを入力できるのでしょうか? ご存知の方がいらっしゃいましたら、教えてください。
>>489 一番大きな値を持ったレコードを消したんなら、
最適化を実行すればOK。
途中の値を消した場合はシラネ
オートナンバは死ねるよね。 カット&ペーストやる人間なら。
>>489 オートctィールドに番号を追加する方法
1.まずb追加したいテーブルをテーブル構造のみでコピー
2.コピーされたテーブルのオートb数値型に変更
3.追加したい番号を入力
4.そのテーブルのデータを追加クエリーで元のテーブルに追加
5.番号が追加される
6.このテーブルのデータベースを最適化してやる
7.終了
Access97ではこれで追加できるよ。
494 :
NAME IS NULL :04/01/30 09:48 ID:i2VcEvk7
質問です。 Me!利用区分.rowsouce = "SELECT 利用区分 FROM 申込者情報 WHERE 申込者名前 = '" & Me!申込者名前 & "'" とやると利用区分という名前のコンボボックスに結果が表示されますが、 利用区分がテキストボックスだった場合は.rowsouceの部分はどのような記述をしたらいい ですか?ちなみにアクセス2000です。
.valueを入れましたが、テキストボックスには SELECT 利用区分・・・が表示されてしまいました・・・。 そして何も記入しないとやはり同じ結果です。 設定とかが悪いのでしょうか?
497 :
NAME IS NULL :04/01/30 13:55 ID:Rb6OlQ1l
VBAにて管理というテーブルの数値型のDENNOというフィールドから データを取得したいんですがどうすればいいですか?
まずは、ヘルプを読むこと。 かなぁ。。。
499 :
NAME IS NULL :04/01/30 16:45 ID:UA56e49r
'
'
>>497 DAOを利用する例
' フィールド"DENNO"は長整数型であると仮定
' Access97にて動作確認
'
Option Compare Database
Option Explicit
Function test() As Boolean
On Error GoTo hErr
Dim dbs As DAO.Database
Dim rst As DAO.Recordset
Dim dw As Long
Set dbs = CurrentDb()
Set rst = dbs.OpenRecordset("管理", dbOpenForwardOnly)
While (Not rst.EOF)
dw = rst.Fields("DENNO").Value
Debug.Print dw
rst.MoveNext
Wend
test = True
OnExit:
On Error Resume Next
If (Not (rst Is Nothing)) Then rst.Close: Set rst = Nothing
If (Not (dbs Is Nothing)) Then dbs.Close: Set dbs = Nothing
Exit Function
hErr:
Debug.Print "*** "; Err.Description; "(id="; Err.Number; ")"
Resume OnExit
End Function
>494 Me!利用区分.ControlSource = "SELECT 〜
501 :
NAME IS NULL :04/01/31 16:56 ID:wDE04cNC
オートナンバー型のように自動で値を割り振ってくれる テキスト型のフィールドを作りたいのですが実現は可能でしょうか?
502 :
NAME IS NULL :04/01/31 20:07 ID:dBT2K96p
>>501 ヴァリアントが使えるVBAがあるのになにを望むの?
>>502 VBAを使わない方法で考えております。
>>503 なにをどの様な規則に基づいて採番したいのか示せ
Max値に1をプラスしたものを振り当てるとか
採番用のテーブルを用意しておきそこから求める事も出来る
505 :
NAME IS NULL :04/02/01 11:37 ID:ynLTAjln
オプションボタンを3つ配置し、A,B,Cと入れます。 各々選択された際に呼び出すクエリを変更する(Aの場合はクエリA,Bの場合はクエリBを呼ぶ)にはどうしたらいいですか?
>506 A,B,Cは各オプション名でオプション値はそれぞれ1,2,3となります。 フレーム名を「フレーム0」とし、クリック時のイベントに Private Sub フレーム0_Click() Select Case Me.フレーム0 Case 1 DoCmd.OpenQuery "Aクエリ名" Case 2 DoCmd.OpenQuery "Bクエリ名" Case 3 DoCmd.OpenQuery "Cクエリ名" End Select End Sub
508 :
506 :04/02/01 14:48 ID:???
509 :
506 :04/02/01 15:06 ID:???
あ、すみません。追加です。 えっとフォームの中段のレコードソースにクエリ使ってるんです。 そこを、ガバっと変えることはできませんか? 上のやり方だと別画面が起動しちゃいました。
>>509 そのフォームは表形式だという事?
それならば
>>507 をちょっと改造して
Private Sub フレーム0_Click()
Select Case Me.フレーム0
Case 1
Me.RecordSource = "Aクエリ名"
Case 2
Me.RecordSource = "Bクエリ名"
Case 3
Me.RecordSource = "Cクエリ名"
End Select
End Sub
511 :
506 :04/02/01 16:01 ID:???
ありがとうございます。 説明不足&下手ですみません。 クエリBに変更したときに、エラーはでなくなりましたがうまく表示してくれないなー。 デザイン時はクエリAを表示させています。 表にはテキストボックスがあるんですが、それも新しいクエリと関連付けないとダメですかね? まったく同じテーブルのフィールドデータを使っているんですが・・・。
512 :
NAME IS NULL :04/02/01 16:13 ID:PwJidkXA
513 :
NAME IS NULL :04/02/01 18:14 ID:RAyn3KuW
>>504 単にユニークなIDが振れればいいので特に規則は無いです。
最初はユニークなランダム文字列を考えていたのですが、
VBA、別テーブルに頼らないSQLのみでの解決となると
数字の文字列のMAX値+1が現実的でしょうか?
>>511 各クエリはフィールド名を汎用に変更
例えばtxt1:日付,txt2:氏名....のように
その上でフォームの各テキストボックスの
コントロールソースも変更
例えば txt1,txt2,... のようすればいいのでは?
(´-`).。oO(ID:RAyn3KuWは何故文字列にこだわるんだろう..)
517 :
suzukid :04/02/01 23:22 ID:YC5fqR/B
クエリについて質問です。 同じ構造のテーブルが二つあります。 テーブルA キー|その他のフィールド 01 |ああああ 02 |いいいい 03 |うううう 04 |ええええ 05 |うううう 06 |ええええ テーブルB キー|その他のフィールド 03 |ああああ 04 |いいいい 05 |うううう 06 |ええええ テーブルAにはすべてのキーがあり、 テーブルBにはそのうちのいくつかのキーがあります。 クエリでテーブルAとテーブルBを左外部結合で結び、 テーブルBにキーがあればBから、 なければAから「その他のフィールド」を持ってきたいです。 抽出結果 キー|その他のフィールド 01 |ああああ ←テーブルAから 02 |いいいい ←テーブルAから 03 |ああああ ←テーブルBから 04 |いいいい ←テーブルBから 05 |うううう ←テーブルBから 06 |ええええ ←テーブルBから 全てのキーに対して「その他のフィールド」を どちらのテーブルから持ってくるか、 というクエリです。 教えていただけませんか。 スレ違いだったらごめんなさい。
518 :
NAME IS NULL :04/02/01 23:27 ID:Zm66lOMd
質問です。 ac2000+DAOを使ってますが、フォーム上の非連結テキストボックスなどに 入力された値を、次回フォームを開いたときにそのまま表示させることは できますか? VBAでDefaultValueを弄ろうと散々試しましたがうまくいきません。 もちろん、テーブルを作れば良いのは解ってますが、フォームを マスタ代わりに使えないものかと。
>>517 Iif関数使えば出来るかと。
>>518 無理じゃないのかな。
考えたこともないから。。。
>>515 逆に聞きたいんですけど、IDって普通文字列にしませんか?
数字のIDってのもありなんですかねぇ。教えてエライ人!
>>516 タイムスタンプだとほぼ同時にINSERTがなされた場合に
重複IDが発行されてしまう可能性があるかなと思いました。
自己レスですが、以下のような方法でテキスト型のフィールドに 自動的にユニークなIDを振る事ができました。 ストアドがあったらこんな苦労はしなくて済むのだろうに。 INSERT INTO t_hoge (id,f1,f2,f3) SELECT Iif(Max(id),Max(id)+1,'1'),'aaa','bbb','ccc' FROM t_hoge
>>517 tbl_1 → テーブルA、tbl_2 → テーブルB、
KeyNo → キー、Subject → その他のフィールド
に置き換えて下のSQLを参考。
SELECT tbl_1.KeyNo, Nz([tbl_2].[Subject], [tbl_1].[Subject]) AS Subject
FROM tbl_1 LEFT JOIN tbl_2 ON tbl_1.KeyNo = tbl_2.KeyNo;
523 :
NAME IS NULL :04/02/03 00:05 ID:B8AHGZ/v
>>521 1
11
12
13
2
21
・
・
・
524 :
NAME IS NULL :04/02/03 00:07 ID:B8AHGZ/v
>>521 わざわざ文字列にするなら左をゼロ埋めくらいしたら?
標準のオートナンバーそのままで何の問題もないと思うけど。
525 :
521 :04/02/03 00:34 ID:???
>>523-524 これで満足していただけますか?
INSERT INTO t_hoge (id,f1,f2,f3)
SELECT Iif(Max(id),Format(Max(id)+1,'00000'),'00001'),
'aaa','bbb','ccc'
FROM t_hoge
>>525 t_hogeのレコードの中で最大のidをdeleteした場合、次のinsertでは
また同じidが生成されるのがちょっと気持ち悪いかもしれない。
まあ、ユニークであればいいというならこれでいいのか。
しかし、標準の長整数のオートナンバーって使いにくい所が何かあるの?
>>526 IDはやっぱり文字列で持ちたいんです。(特に理由は無し)
できればABC-0001みたいな規則のあるものか、ランダム文字列にしたかった
のですが、ストアドのないアクセスでは数字型文字列のインクリメントという
手しかありませんでした。
PerlからODBC経由で接続している為VBAが使えないのが痛かったです。
>>527 そうゆうこと。だから桁数決めない方がいいかなと思って
最初
>>521 のようにしてたんです。
>>528 でもいずれにしろ Long 超えたらダメだけどね。
>>529 Decimal型にするとかw
>>528 これといって理由がないなら文字列で保持するのは無駄だと思うんだけど。
処理遅くなるよ。
どうしてもというなら読み込み時にクエリで文字列にすればいんでないの?
>>530 なんかやってるうちにそんな気がしてきましたよ。
オートナンバー型にしようかな。
ありがとうアホな質問に付き合ってくれたエロイ人達!
つか、IDだろ。レコードの一意性を保証されてれば、何でもいいんだよ。商品コードとかじゃないんだから。
商品A 商品B A店 10 20 B店 15 10 といったクロス集計に、別のテーブルから商品Cという列を加えることは可能ですか?
>>533 可能
ユニオンクエリーで調べてください。
535 :
NAME IS NULL :04/02/06 20:12 ID:Ps5eFJO1
ODBC接続する際のIDとパスワードを設定したいのですが、 どこで設定すればいいのでしょうか?
>>536 [ツール]>[セキュリティ]で設定するユーザーやパスワードは
ODBCのID、パスワードとは関係ないですか?
538 :
533 :04/02/07 09:17 ID:???
>>534 おそくなりました、ありがとうございました!
Access + VBA なんかでカリカリ書いてると、 「これ、VBで作ったほうが早いんじゃないのか?」 と思ったことがある。 今はマクロがマイブーム
540 :
NAME IS NULL :04/02/08 14:06 ID:ww8jGd3X
お願いします。マジで分からないのです。 当方は、事務員です。ACCESSは、フォームからの 入力しか普段はやっておりません。 環境はACCESS2000で 従業員の住所や顧客管理をしてます。 そこで質問ですが、インデックスと主キーは どう違うのですか?
542 :
540 :04/02/08 21:31 ID:ww8jGd3X
>>541 インターネットで調べても分からないのです。
私はDBを設計するつもりはなく、
ただ、どういう役割があるのか知りたいのです。
その役割の1部分だけでも十分なので、
具体例などを言っていただけると有り難いです。
>>542 おおまかには、こんな感じ。
主キー:その列には、重複する値を入力できない。
インデックス:その列を検索条件にした場合に早くなる。
544 :
540 :04/02/08 22:25 ID:ww8jGd3X
>>543 有難う御座います。
1番検索条件として使う列は「単価」です。
ちょっと、やってみます。
545 :
543 :04/02/08 22:43 ID:???
ちなみに、Accessの場合、主キーにはインデックスが自動的に作成されたと思う。 あと、列の値の大部分が同一値の場合は、インデックスを作成しても早くならない 場合もある。(単価なら、100円のレコードばっかりだと早くならないかも。って事)
インデックスつけて速くなるのはそのフィールドが WHERE句で使われてる場合のみですよね?
547 :
NAME IS NULL :04/02/09 00:08 ID:Oelii6dj
>>537 > [ツール]>[セキュリティ]で設定するユーザーやパスワードは
> ODBCのID、パスワードとは関係ないですか?
関係ない。
548 :
NAME IS NULL :04/02/09 00:12 ID:Oelii6dj
>>547 あと、リンクテーブルを使う場合の注意。
ファイルDSNから作ったリンクだとパスワードが保存されない。
ユーザDSNから作ったリンクだとパスワードが保存される。
何が違うかは Table オブジェクトの Connect メンバもしくは
Connect プロパティを見ればわかる。
が、違いがわかったところでどうしようもないので、
パスワードを保存したいならユーザDSNを使うのが吉。
Access 2000 での話しなので、最新バージョンでは
改善されているのかもしれない。
549 :
543 :04/02/09 00:36 ID:s0j5z2In
>>546 え。JOINじゃインデックス関係ないの?
Group by は、どうなんだろ?
女陰はFROM句の一部じゃねーのかゴルァですよ
555 :
NAME IS NULL :04/02/10 19:36 ID:o2K/PF3a
テーブル 「T_価格」 型番: 品名 : 定価 : 卸価格 123AAA : 2ちゃんビューワー: 3000円 : 2200円 というようなテーブルから型番で価格等を引っ張る為に フォームのテキストボックスForms![CD1]〜[CD20] で、調べたい型番を入力させ、 クエリで型番に [Forms]![F_複数検索]![CD1] Or [Forms]![F_複数検索]![CD2] 〜 Or ・・・・[Forms]![F_複数検索]![CD20] という用に全てOrで繋いだ値を抽出条件にし、 単純に呼び出して電子カタログとしています。 さて、ここで困っているのが、このまま呼び出したクエリは レコードの順番がめちゃくちゃになっており、見づらいのです。 これを入力したときのフォームの順番になるようにできないものでしょうか。 抽出後の結果が [CD1]から呼んだレコード [CD2] 〃 ・・・・・ というようにしたいのですが、 何かうまい方法はないでしょうか・・・。
556 :
NAME IS NULL :04/02/10 20:50 ID:3+rRDf+4
OrderByでできないソートは作業表使うしかないだろうね。 もちろんVBAからカーソルで読んでもいいんだけど。
>>555 SELECT T_価格.*, 1 AS CD
FROM T_価格
WHERE T_価格.型番=[Forms]![F_複数検索]![CD1]
UNION
SELECT T_価格.*, 2 AS CD
FROM T_価格
WHERE T_価格.型番=[Forms]![F_複数検索]![CD2]
UNION
:
:
(以下20まで)
ORDER BY CD
デザインビューでUNIONは使えないから、直接SQLビューで。
>>555 ユニオンクエリを使えば可能!
固有値と抽出条件のみ異なるクエリ1〜クエリ20を作成し、
これらをユニオンクエリで合体させれば良い。
【クエリ1】
SELECT 1 AS 固有値, * FROM テーブル WHERE 型番=[Forms]![F_複数検索]![CD1];
【クエリ2】
SELECT 2 AS 固有値, * FROM テーブル WHERE 型番=[Forms]![F_複数検索]![CD2];
クエリ3〜クエリ20も同様
【ユニオンクエリ】
SELECT * FROM クエリ1
UNION SELECT * FROM クエリ2
... (途中省略)
UNION SELECT * FROM クエリ20
ORDER BY 固有値;
559 :
558 :04/02/11 01:32 ID:???
あっ、かぶっちゃった! でもさぁ、品名をLIKEで検索した方が良いと思うんだけど・・・ なんで、型番なんかで検索するの?
560 :
NAME IS NULL :04/02/11 12:44 ID:sFClJU76
>>557 >>558 有り難う御座いました。クエリを20個作ってユニオンクエリで
まとめることが出来ました。
>>559 品名の曖昧検索機能はあるんですが、品目が1万点ほどあり、
スペック違いサイズ違いなんかも多いので下手に品目で検索すると
ヒット数が多くなりすぎるのです。
そのまま発注出来るようにもしてあるので、注文書の表順に結果が出てきて
欲しかったのです。社内SEが作った検索システムだったのですけどね。
561 :
NAME IS NULL :04/02/11 21:20 ID:s54mFlgG
562 :
NAME IS NULL :04/02/15 12:21 ID:9SKqTqwQ
ボタンを押すと指定したホームページをインターネットエクスプローラにて 開くにはどうすればいいですか?それとアクセスで閲覧することはできますか
564 :
NAME IS NULL :04/02/15 18:51 ID:2dMe3A3S
教えて君ですが・・・ ┌───────────┐ │グループヘッダー │ ├───┬───┬───┤ │詳細行│詳細行│詳細行│ │1段目 │2段目 │3段目 │ └───┴───┴───┘ みたいなのをレポートで作るとき、グループヘッダは詳細行3行分の幅で 作れないのでしょうか・・・。
>>563 これってAccessに対して使う場合、どういうふうに便利なの?
>>563 AccessからODBC経由で接続するのより使い勝手は良い?
AccessもCSEも使ってるけど、Accessのが使い勝手良いね。
レポートについてなんですけど RecordSourceを指定せずにDAOやADOで取得したデータを出力することって出来ますか? 3つのテーブルから、ページヘッダー、詳細、ページフッターにそれぞれ出力したいんですが 次の詳細レポートやページに印字する方法がわかりません ヨロスクオナガイシマス
あの、Access って MDI よりも、 全ウィンドウが独立したウィンドウのほうが扱いやすいと思うんですが… とくにマルチモニタだったりすると。
Access2000なんですが、クエリを開いてからピボットテーブルを作成しようとしても、ビューの切り替えのところにそもそもピボットのビューが出てきません。 これってなんなんでしょうか?
マルチポストはよろしくないなぁ
>>572 マルチポストは答えを最速で求める為の一つの方法。
お前の脳みそはシングルタスクかっつーの!
1月の売上と2月の売上のテーブルがあるとします。 これをくっつけて1〜2月の売上っていうクエリを作ることは可能なんですか? 日付 店舗 金額 1/1 A 100 1/3 B 100 2/5 A 150 みたいな感じで、縦にデータを連結させたいのですが・・・・
SELECT * FROM 1月の売上 UNION SELECT * FROM 2月の売上 ORDER BY 日付 ASC テーブルを月ごとに分けるってのもどうかとは思うけど、 インポートしてきた状態だったらそういうこともあるか。
>>575 レスどうもです。
他のシステムからエクスポートしたのを取り込むんでこういう形になるんですよ・・・
>>576 だから、クエリの時に一つにするんじゃなくて、インポート時にしとけっていうことだよ。
パス解析は何処で聞いたらいいですか?
580 :
NAME IS NULL :04/02/18 15:09 ID:i3NQFhUW
2.mdbよりもう1.mdbを起動して1.mdbをアクティブにしたいんですがどうすれば いいですか? よろしくお願いします
581 :
訂正 :04/02/18 15:10 ID:i3NQFhUW
2.mdbより1.mdbを起動して1.mdbをアクティブにしたいんですがどうすれば いいですか? よろしくお願いします
Dim AppAcc As Access.Application Set AppAcc = New Access.Application AppAcc.OpenCurrentDatabase "Mdbファイルのパス" で開いたら自動的にアクティブにならない? 参照設定が必要かも
583 :
NAME IS NULL :04/02/20 12:07 ID:r72qf0JX
ユニオンクエリーをFROM句のサブクエリ内で使っています。 SELECT a,b,c FROM (SELECT a,b,c FROM t_hoge UNION SELECT d,e,f FROM t_hage) サブクエリ内ではhogeテーブルの(a,b,c)フィールドとhageテーブルの (d,e,f)フィールドをUNIONクエリで連結させているのですが、 サブクエリの外のSELECTで(a,b,c)フィールドを指定しても 特にエラーになることはありません。 UNIONクエリで連結した場合、フィールド名は最初のSELECTで 指定したものに統一されるという仕様なのでしょうか?
584 :
NAME IS NULL :04/02/20 23:55 ID:GVqkqHJp
>>583 UNIONの結果セット列名は、UNION内の最初のSELECTステートメントの結果セット列名と同じ。
その他のSELECTステートメントの結果セット列名は無視される。
ORACLE←→ACCESSの顧客管理GUI作ってんですけど テキストエリアにシングルクォーテーション入れられると落ちます。 助けてください。 つーか落ちまくりで作り直しになりそーな予感。
サニタイズ sanitizeをキーワードにして勉強してみれ。 あぶないのって、 ' " : ; -- ぐらいだっけ?
588 :
NAME IS NULL :04/02/23 20:58 ID:kdCRlJac
AccessファイルをLAN上で共有してるのですが、 1人がファイルを開いてデータ入力などをしてると 他の人が違うデータを同時に入力することができないのですが、 これを効率よくするために、 同時にアクセスしてデータの入力作業をする方法があるのでしょうか?
あー、MS-Accessではちょっと。。。
>>588 排他モードで開いてるとか、全レコードロックしてるからでは?
591 :
NAME IS NULL :04/02/23 22:45 ID:kdCRlJac
>588 599 レスありがとうございます。 やっぱりAccessでは難しいみたいですね。 そういうことが出来る技があるのかなと思いまして 聞いてみました・・・
592 :
590 :04/02/23 22:59 ID:???
あのー、出来るんだけど・・
でも、それをやるとファイルが壊れるって聞いたけど。
それを言っちゃーおしめぇーよ! 確かにクリティカルな用途には向かないが それなりの使い道もあるじゃん
だから自己責任でね。と書いておけ
>>1 人がファイルを開いてデータ入力などをしてると
ファイルを開いているのか?
ファイルを、直接?
各マシンから?
リンクテーブルとか生ぬるいやり方じゃなく、
各マシンのデスクトップあたりにショートカットでも貼り付けて?
いや、それが絶対に良くないとは言わないが。
言わないが
言わないが
言わないが
>>588 ローカルのDBに作業用のテーブルを置いて、入力そのものはローカルに。
更新ボタン等のイベントで共有DBの方に排他で追加するのがええんではないかと。
なんにしても、直接多人数で開くのはよろしくない。
なんでお前等MSDEの存在を教えてやらないんだ? MSDE使えば一つのmdbに対して複数ユーザーが同時接続できるだろ。
MSDEならMDBではないぞな
前に単なる好奇心で試したことあるけど、MSDE + adp って何だかよく分かんねえぞ。 このフロントエンドのファイルにこのテーブルは要らないなと思って消したら、 大本のデータまで消えちまったの。 何だよそれ。 俺はそんなことをしたおぼえはないぞ。 以来、MSDEには触らないと決めました。 いいんです。 小さな職場で使う素人の自作システムは、mdbに自前ロックつけるだけで充分です。
MDBでMSDEにリンクテーブル張るだけでも違うと思われ
MDBに慣れきってるせいもあるんだろうが ADPは非常に使い勝手が悪く反応もトロイと感じる のは木の精?
>>602 ADPが重いんじゃなくて、ADPを介して使ってるDBMSやネットに問題があるとおもわれ。
JET(+ADO) でビット論理和って使えないんですか? 数十個のBooleanな検索条件があって、それをビットマスクで一気に片付けたいんですが…
>>603 ならば、MSSQLServerやMSDEがJETより重いって事ですね!
606 :
NAME IS NULL :04/02/26 20:26 ID:eh35xVEj
ExcelのVBAのリファレンス本はけっこうあるのですが、 AccessのVBAのリファレンス本ってあまりないですよね? 何か違うの?
VBAって言語自体は特に違わないけど、使うオブジェクトがぜんぜん違うから それなりにコツはいる。
他のMDBファイルから、テーブルやクエリーを インポートすることができますが、ユーザ設定の ツールバーとか、お気に入りも含めて インポートする方法は無いものでしょうか? データベースが肥大化してしまい、最適化でも小さくならないので 一ヶ月に一度くらいの頻度で新しいデータベースに全部インポートして きれいにしているのです。
>>608 インポート時に出るダイアログの「オプション」を見れ
610 :
NAME IS NULL :04/02/27 19:50 ID:tbwpGA1Q
>>609 ありがとうございました。
なるほど、ツールバーはインポートできるんですね。
お気に入りは無理なのでしょうか?
AccessのVBAまでかじったら、他のデータベースも理解が早いですかね? 全然レベルが違うって思ったほうがいい?
>>610 漏れの会社ではいまだにAccess97を使ってるから聞くけど、
「お気に入り」って言うのがAccess2000以降のバージョンに
あるの?
>>611 VBAなんてAccessにしかないものだから他のRDBMSの理解にはつながらない。
クエリをSQLビューから自由に作れるようにした方がいいな。
テーブルデータをフォーム上からチェックボックスを使って表示したいのですが、 チェックがオンの時には1と入力されたもののみ表示。 チェックがオフの時にはすべてを表示したいのです。 クエリのフィールドと抽出条件はどのようにすればよろしいでしょうか? access2000 win2000 です。 どなたか教えてください
>>613 >VBAなんてAccessにしかないものだから・・・
ということは、
Visual Basic for Access ですか?(w
>>611 ASPでDB扱う方法は覚えやすくなるよ。
AccessやSQLServerじゃなくても、oo4oあたりも、ADOやDAOと似てるし。
DBの理解はできんが、DBの扱い方はちょっと覚えられる。
先輩、インポートをインポって言うのやめてください、セクハラです。
作業用に「インポート」っていうテーブル作ったんだけど、 作業で窓をいっぱい開くと、タスクバーに「インポ」って載ってて ちょっと鬱。
619 :
NAME IS NULL :04/02/28 06:51 ID:+w6dv8bo
え?
>>612 Access97 には「お気に入り」ってないんですか?
620 :
612 :04/02/28 07:39 ID:???
>>613 ストアドプロシージャ書く下積みにはなるんじゃないかと。
まあ構造化言語だったらなんでもいいという話も。
623 :
NAME IS NULL :04/03/06 12:23 ID:aj8nNqyj
Accessのテーブル同士で張るリレーション(?)って Access特有の機能ですよね?
参照整合性制約っていう意味ならAccess以外のDBMSにも普通にあるよ。
625 :
NAME IS NULL :04/03/07 01:02 ID:aqhIYym3
いままでときどき、Windows Update で Jet データベースエンジンに関するアップデートがあったんですが、 これってAccessの動作にも影響を与えているんでしょうか?
626 :
625 :04/03/07 02:27 ID:aqhIYym3
627 :
625 :04/03/07 03:18 ID:aqhIYym3
>>625 Access2003では最新版を導入しないと動かない
Accessのセキュリティを下げれば動いたと思うが・・・
Access の組み込み言語(?)が C# だったら、 どんなに使いやすいだろう…
>>630 え?そうなるの?いつから?
もしかして 2003 ではそうなっているのかな?
俺、2000ユーザ。
C#はいま Sharp Develop でいじって遊んでる。
2003 ではまだ.Netネイティブじゃない。
>>633 今後 Office シリーズは .net ベースになるのかな?
とすると、.net フレームワークさえ実装すればいい、って時代が来る?
Javaで果たせなかった夢を果たすことができるのかな?
>>633 つーことは、Access2003はまだ普通にVBA?
は?組み込みって?
>>637 Accessランタイムがついているが・・・
ネットワーク上にMDBファイルがあり、 その中に1GBのデータが格納されている テーブルがあったと仮定する。 JetでそのMDBにアクセスし、 その1GBのテーブルについて検索をかけた場合、 JetってSQLエンジンが各ローカル(クライアント)PCに あるから、1GBのテーブルデータ を全てローカルに持ってきてから検索するのかな? インデックス検索ならば対象テーブルのインデックスデータ全て 持ってきて検索し、その後、テーブル情報を持ってくるのかな?
>>639 つーかクエリ(SELECT 〜 WHERE)を投げて
レコードセット取得して操作ではダメなのか?
641 :
NAME IS NULL :04/03/09 13:11 ID:mFU/pbhM
>>640 そのクエリの内部のメカニズムを聞いてます。
鯖系DBMSではクエリーのwhere句による絞り込み検索する場合、
対象テーブルデータに対し、where句の条件に適合した
結果セットを作成するのは「サーバマシンの処理」であり、
クライアント側(クエリ発行側)は
その作成された結果セットだけに対して
アクセスを行えばいいのですが、
クエリを投げるといっても、Jetの場合、
「Jet(エンジン)はローカルPCにある」ので、
例えwhere句で絞り込みを行うにしても、
Jet搭載マシン=自分のマシンに
テーブルの全データ(対象テーブルの全インデックスデータ)
を一旦持ってきてからでないと、
where句による検索不可能ではないかな?
ということです。
>>641 持ってきていると思いますが。
MSDEでも使ったほうがいいかと。
そいういや、MSDNとMDBの間のレプリケーション(?)ってできたのかなぁ。
どう考えてもMSDNはレプリケーションできんだろw
>>644 すまん… てか、MSDEって読み替えてくれよ(笑
MSDE に入ってるテーブルを部分レプリケーションシテ、
ローカルにMDBファイルとして持っておいて、
出先でデータ入力&修正。
会社のイントラネットにアクセスできる場所にたどり着いたら
同期したいな〜っておもってるんですが。
自前で同期させるアルゴリズムをVBAで実装しなきゃならないのかなぁ。
>自前で同期させるアルゴリズムをVBAで実装しなきゃならないのかなぁ。 そのとおり。
647 :
NAME IS NULL :04/03/10 22:33 ID:6LDN5Kh1
質問します。 皆様の中でAcessからSQLサーバへのデータの移行をしている人はいると思います 聞きたいことは、データは単純に移行できるのですがフォームやそれに対応している クエリーなどはどうなのでしょうか? やはり新しいデータをadp形式を使ってリンクし直して 作り直さなければいけないのでしょうか? 今まで作ったフォームをそのまま使いたいのでデータ移行だけフォームを使うことは 可能なのでしょうか?なにか知恵はないのでしょうか。またはサイトだけでも教えて頂ければ と思っていますが。よろしくお願いします
パラメータクエリ等はストアドを作成します アクションクエリもそのまま移行は出来ません そのまま使いたければデータだけ移行して ODBC接続ではどうでしょうか? SQL Server移行のメリットは減りますが
>>647 既存のロジックをそのまま生かしたいなら
元々使用していたテーブルを
移行後のテーブルに対し、リンクテーブルを作成、使用する
しかないと思う。
ちょっと日本語が間違ってた... s/元々使用していたテーブルを 移行後のテーブルに対し、リンクテーブルを作成、使用する /元々使用していたテーブルをSQL鯖に移行し、 そのテーブルに対し、リンクテーブルを作成、使用する
651 :
NAME IS NULL :04/03/11 00:29 ID:3+zU4jQu
ありがとうございます。 データベースはアクセス2003でテーブル構造を変えずに元のフォームをそのまま使えるかどうか を調べたのですがよくわかりませんでした。結局、フォームは使えないんですね。 手間がかかりそうですね。ODBC接続は知っていのですが。 データだけ移行して使えるのは考えが甘すぎたのかも・・・・・ でも結構こういう案件は多いのでは
たまに、MDBファイルを閉じて、次に開くと空っぽになってることがある… ガクガクブルブル…
>>651 つーか、DB(MS)を変更すること自体
システムを作り直すのと同じ
案件多いけど、スクラップ&ビルドだろうな
654 :
NAME IS NULL :04/03/11 18:13 ID:3+zU4jQu
というこは、VBかVB.netで作り直すことになる? ビルドということは再構成。VBAのところぐらいは再利用になるのですね。 アクセスで適当に作ったのは全部アボーン? 何かいい手はないですかね。 データベースだけ移行してフォームは再利用は甘かった?
655 :
x :04/03/11 18:49 ID:???
>>654 再利用も不可能じゃないと思うけど、現有資産にこだわるより
ロジックだけ継承して、全て再構成する方がきっと幸せになれるよ。
DBだけ移行→テストで不具合発見→原因を探る→・・・作り直した方が早いな・・・
スクラップ&ビルドのまとまった予算がなかなか下りないんだよな。 手持ちの予算ですこしずつやりくりして、けっきょく泥沼にハマる。
658 :
NAME IS NULL :04/03/11 19:55 ID:kuIT7cQV
Accessでオートナンバー型をやめて Dmaxを使った自動採番にしようと思っているのですが、 分からないので質問させてもらいました。 挿入前処理で H16-0001といった風に番号をつけたいのですが、 ハイフンを入れることもできるのでしょうか? できるとするなら、コードを教えてください。 それと以前、自動採番に挑戦したとき、 テーブルのデータが何もなしの状態で Dmax+1を使用したら、番号がつきませんでした。 テーブルデータがない場合の対策も教えて頂きたいです。 よろしくお願いします。
659 :
shun :04/03/11 20:28 ID:jNp4wpqc
アクセスのフォーム上の人物データを基に、アウトルック2000の連絡先フォルダ内のサブフォルダにメールアドレスを追加したいのですが、何か方法はありますか? 連絡先フォルダに入れるのは出来るのですが、サブフォルダにいれる方法がわかりません。もちろん手動でなら出来るのですが、アクセス上からボタン一つで自動化したいのです。
660 :
NAME IS NULL :04/03/11 22:28 ID:FdHERjFn
アクセスの表でフィールドと型を表示してドキュメントに まとめたいのですがアクセス順に表示させることのできる ツールてないですかね?できればフリーで ハードコピーはしんどいの。プログラムはアクセスで表示 させたときの順序が違うのでNG? なんかないですかね
とんとかいも氏のオブジェクト名ユーティリティでドゾー
662 :
NAME IS NULL :04/03/12 01:03 ID:/HcWdJQD
ありがとうございます フィールドの内容と型だけなので本をみて作りました。 Dim rs As Recordset Dim i As Integer Dim u As Integer Dim kind As String Set db = New Connection db.CursorLocation = adUseClient db.Open "PROVIDER=Microsoft.Jet.OLEDB.4.0;Data Source=C:\ファイル;" Set rs = New Recordset rs.Open "select * from テーブル", db, adOpenStatic, adLockOptimistic i = rs.Fields.Count - 1 For u = 0 To i Select Case rs.Fields(u).Type Case 202 kind = "テキスト" Case 2 kind = "数値" Case 3 kind = "数値" Case 11 kind = "YES・NO型" End Select Text1.Text = Text1.Text & Str(u + 1) & " " & rs.Fields(u).Name & " " & kind & vbCrLf rs.MoveNext Next u rs.Close
663 :
NAME IS NULL :04/03/12 20:08 ID:v/nijgT3
コンボボックスの値をそのまま入力せずにたとえばAという値なら1を、Bという 値なら2をみたいにテーブルに登録するときに対応づけたいのですが、 いい方法ありますか?モジュールだとどのような記述になりますか?
664 :
NAME IS NULL :04/03/12 21:00 ID:4XGPg6Tq
>>663 おまいさんはAccessでのコンボボックスの使い方を
もう少し勉強する必要があるな。
ウィザードが使えるならそれを使えば良いし、慣れれば
普通に手で設定できる。 モジュールなんて不要。
>665 それがですね、if文やcaseをつかってやっていたのですが、3つの コンボボックスがあってそれぞれのボックスの値が5つずつありまして それをやると5×5×5通りの条件文を書かなければならないと思って もっと手軽な方法をってさがしていました。 たとえば果物っていう項目があるとするなら みかん、りんご、バナナ、メロンとあるとします。 コンボボックスにはそのまま表示させますが、 テーブルに登録するときにはみかんを選択したら1、りんごは2 バナナは3、メロンは4というふうにしたいと思ってました。 その方法がしりたくて。
つぶやき用AA用意しましたんで、存分にお使い下さい (´-`).。oO(・・・)
初心者なんだからちゃんと答えてやればいいじゃん
(´-`).。oO(デザイン画面をよーっく見てみよう)
(´-`).。oO(ウィザード使ってからプロパティ見ればいいのに)
671 :
NAME IS NULL :04/03/13 23:48 ID:wUIFvOfa
まったくのシングルユーザで使っているのに、 MDBファイルが壊れることがあるってのは納得いかないなぁ。
使い方だろ。勝手に壊れることないけどな。
673 :
NAME IS NULL :04/03/14 23:30 ID:Op1lHktA
OS:W2000ps Access Version:Access2000 SR-1 MSDEをインストールして、Access2000よりアップサイジングを行おうとすると、古い一時的な作業データベースがあるため作業ができないと表示されます。 古い一時的なデータベースを削除後再度実行してくださいと出るのですが どのファイルを削除したらよいのかわかりません。 誰かわかる方がいらっしゃいましたら教えて下さい。
674 :
NAME IS NULL :04/03/15 03:08 ID:WeH+Xi1G
修復可能ぐらいにMDBファイルを壊す方法ってありますか?
ビット反転でもかけるとか。
>>666 で、コンボボックス用のウィザードは使ったのか?
ウィザードを使う前に下のデータが入ったテーブルを
用意しろよ。
1:みかん
2:りんご
3:バナナ
4:メロン
後はウィザードで上のテーブルを指定するだけ。
デフォルトでコードは隠して登録、名前は表示だけで
登録はされないようにしてくれるはず。
>>671 フリーズしたのでタスクマネージャからキルしたり
VBAデバッグ停止中に急にAccessが落ちたり、
馬鹿みたいにコントロールが張られているフォームを
何回も修正するとよく壊れる。
677 :
NAME IS NULL :04/03/15 22:25 ID:JHR0TViG
Access97ってデフォルトではDAOを使うようになってますが ADOは使えますか?例え使えたとしてもデフォルトではないので 使うべきではない?
>>677 全然問題無く使える
参照設定いぢるべし
679 :
NAME IS NULL :04/03/16 13:30 ID:7GTJZR1Z
テーブル内のデータの集計のやりかたがいまいちわからないので>< 1.ABCDE 2.ABCDE 3.ABCDE とかの時に、Cだけの集計をとりたいとき等はどうしたらいいでしょうか?
>>679 Cというのがカラム名ということなら
select sum(c) from テーブル
Cというのがデータということなら
select sum(カラム) from テーブル
where Cというデータが入っているカラム= 'C'
681 :
NAME IS NULL :04/03/16 16:47 ID:kOORlT+2
>>676 > フリーズしたのでタスクマネージャからキルしたり
> VBAデバッグ停止中に急にAccessが落ちたり、
> 馬鹿みたいにコントロールが張られているフォームを
> 何回も修正するとよく壊れる。
あるある。そう、そういうシチュエーションで壊れるんだよね…
そのときやってた作業の内容が失われるのは仕方ないとして、
MDBファイル自体が壊れちゃうのは困るよなぁ。
まぁこまめなバックアップをとるしかないんだが…
わかっちゃいるけど、ね。
682 :
NAME IS NULL :04/03/16 20:27 ID:e9hPvJ0j
>>678 ありがとうございます。ちゃんと使えますね。
でも、Access97ではDAOと比べるとADOはかなり速度が落ちると
聞いたのですが、どうなんでしょうか?
汎用性を考えて(今後2000へ移行することを考慮して)、
ADOで作りたいのですが。
2000も普通にDAO使えますよ?
AccessのクエリのSQLビューで CREATE VIEW hoge AS SELECT * FROM t_hoge; とすると、「CREATE TABLEステートメントの構文エラーです」という エラーが出るんですけど、AccessにはCREATE VIEW構文って無いの?
>>684 まさか、ADPじゃなくMDBって落ちじゃあないだろうな・・・
>>685 その「まさか」のような気がしてならない…
Accessではクエリ=ビューだって言うから CREATE VIEWでできるとおもってたんだけど出来ないのか。 つーか、もちろんmdbなんだが。
688 :
NAME IS NULL :04/03/18 00:32 ID:m9rDweI8
VC6 & ADOで、mdbのデータベースパスワードを変更したいのですが、 JROをインポートしても、それらしき関数が見当たりません。 ご教授をお願いします。
689 :
NAME IS NULL :04/03/18 01:51 ID:bR7Mgfz2
今ここのスレで祭り状態。ユーコってやつが日本がhomeで一勝でも出来たらヌード画像晒すって言ってた。
それで16日のレバノン戦で日本が勝ったから大騒ぎ!周りのやつが脱げ脱げって騒いでついに晒させた!
しかも結構かわいい!すっげぇ祭り状態!もうすぐ1000超えそうだから早くおいで!ここのスレで見れるよ。
http://tmp2.2ch.net/test/read.cgi/mog2/1076074534/l50 152 名前:ユーコ :04/03/16 17:05 ID:SZpRj0sm
わかった、日本がレバノンに勝てたら私のヌード画像晒してやるわよ!
153 名前:名無しさん◎書き込み中 :04/03/16 17:06 ID:PaBD9jNB
言ったなw みんな覚えとけよ!
256 名前:名無しさん◎書き込み中 :04/03/16 19:45 ID:SZpRj0sm
おっしゃ!ゴール!!うpしろうpしろ!
259 名前:ユーコ :04/03/16 19:47 ID:SZpRj0sm
はぁ?まだ前半20分じゃん。これから逆転されるわよ。
308 名前:玉の輿 :04/03/16 20:36 ID:uHsa/6Kq
マジかよ・・・レバノン・・・(涙)
319 名前:名無しさん◎書き込み中 :04/03/16 20:37 ID:SZpRj0sm
ゴール!信じらんねぇwww
350 名前:玉の輿 :04/03/16 20:57 ID:uHsa/6Kq
日本が勝ったわけだが…
351 名前:名無しさん◎書き込み中 :04/03/16 20:57 ID:tdEaD5sL
ユーコヌード画像うpしろうpしろ!!!
758 名前:ユーコ :04/03/17 23:36 ID:SZpRj0sm
わかったよ。約束通り晒すわよ…
↓
(ここでうpされますた。)
760 名前:名無しさん◎書き込み中 :04/03/17 23:36 ID:atOaw/sA
>758
キター!女神降臨!!!
764 名前:名無しさん◎書き込み中 :04/03/17 23:37 ID:SZpRj0sm
ぬぉー!!!!!!激しく勃起!
Jetデータベースのバージョンの メジャーなアップデートはいつ? ずっと4,0
Jetの次のバージョンではストアドに対応して欲しいなぁ。
692 :
NAME IS NULL :04/03/18 18:56 ID:TMOsz30I
フォームで名前で文字を検索すると 住所や電話番号などの多数の項目が検索できるDBを つくりましたが、名前も完全一致でないとだめなんです。 そこであいまい検索できるようにしようと思っていたのですが、 それだと一件しか表示されないことがわかり、別のウィンドーに 表示させることを検討しましたが、数百件すべてのウィンドーを 表示というのは不可能です。オートフォームみたいに フォームの左下にあるボタンを押して先探すみたいなことしたいのですが どうしたらいいでしょうか?
>>692 Form.Filter = "Like '*" & 名前文字列 & "*'"
Form.FilterOn = True
ぢゃだめなのか?
AccessのDBに、クエリかマクロかを使って順位を振り当てる方法はありませんか?
あああ、同じ質問がありました。すいません。
>693 フォームがあってその上に3つのタブがあってそこに名前や住所などの項目 のテキストボックスがあるんですが、複数のテーブルのフィールドから フルネームによる検索をしてそれぞれのテキストボックスに表示させる方法 なんですよ。でもそれってフルネームいれないと検索できないっていう弱点 がありまして、それであいまい検索とかしたいと思っていまして たとえば山田っていう苗字の人を全部出したいとか思ったときに数十、数百 っていうウィンドを表示させることはできないので前にも言いましたとおり フォームの左下のボタンを押すことによって先に進む方法があればと思って ました。
697 :
NAME IS NULL :04/03/21 10:34 ID:cdbpXFAE
VBAでAccessのバージョンを調べる方法はありますか? 具体的には97か2000以上かを判別したいのです。
>>697 Application.Version は?(自分では使ったことが無いんで結果は知りませんが)
イベント プロパティに指定した式 クリック時 でエラーが発生しました: Microsoft Access が OLE サーバーまたは ActiveX コントロールと通信 しているときにエラーが発生しました。 *マクロ名、ユーザー定義関数名、[イベント プロージャ]以外の式が指定されています。 *関数、イベント、マクロの評価でエラーが発生しました。 というエラーが出てしまうのですが原因がまったく分かりません。 良い解決法をご存知の方いらっしゃいませんでしょうか? Option Compare Database Option Explicit Private Sub cmd確認_Click() If Me!txtA Like "[あ-お]*" Then MsgBox "「あ行」の文字" Else MsgBox "違います" End If End Sub あ行かどうかを判定するプログラムです。 テキストボックスにはtxtAという名前で指定してあります。 もう頭が痛いです。・゚・(ノД`)・゚・。
VBAでレコードの行位置を取得するプロパティを探しています。 調べてみたけれど分からないです。;; 宜しくお願いします。
>>698 レスありがとうございました。
Msgbox Application.Version
とやると、「メソッドまたはデータメンバがみつかりません」
というエラーが出てしまうので、他の方法を調べてみたところ、
SysCmd(acSysCmdAccessVer)
という方法で解決できました。
お手数をおかけしました。
702 :
NAME IS NULL :04/03/21 15:18 ID:cdbpXFAE
Access97ってもしかしてFROM句のサブクエリーって使えないの?
703 :
NAME IS NULL :04/03/21 17:53 ID:xjgFf/sf
Accessの日付入力で楽をするために、 日付を入力部分をコンボボックスにし、 選択するときに、1ヶ月分のカレンダーを表示させ、 キーボードを使わずに入力できたらいいなと思っていますが そんなことできるのでしょうか? できるとするならば、やり方を教えてください。 よろしくお願いします
704 :
NAME IS NULL :04/03/21 18:32 ID:Ufx7Jkph
>>703 そんなことするぐらいだったらカレンダーコントロールの方がいいんじゃないの?
705 :
NAME IS NULL :04/03/21 21:04 ID:xjgFf/sf
>704 やり方を教えてください。お願いします
100年分ぐらいのカレンダーテーブルをつくる クエリで月だけのフィールドを足し、抽出条件を当月にする そのクエリをコンボボックスのレコードソースにする
そして100年後に2104年問題発生
>>703 Access2000だったらOffice Developer版を購入し、DTPickerコントロール使うとか。
(ってもう売ってない?)
710 :
NAME IS NULL :04/03/22 19:09 ID:Uyn8edfq
711 :
NAME IS NULL :04/03/22 19:31 ID:wtIb2g3E
質問です。 規定値でID番号を自動で取得させているのですが、 現在は =IIf(DMax("フィールド名","テーブル名","フィールド名 Is not null") Is Null,1, DMax("フィールド名","テーブル名","フィールド名 Is not null")+1) を使用していて、普通に1,2,3と増えていくだけなのですが、 これをH16-1、H16-2、H16-3といった具合に変えたいのですが うまくいきません。 どうか良きアドバイスをお願いします
カレンダーコントロールマウスでしか入力できないのでしょうか? キーボードで入力したいのですが・・・・
>>703 100年分のカレンダーを作るのもめんどいので、
まず t_hoge テーブルのDATE_SEQフィールドに1〜31の数字を入力し、
コンボボックスのレコードソースに
SELECT t_hoge.DATE_SEQ FROM t_hoge _
WHERE (((t_hoge.DATE_SEQ)<=Day(DateSerial(Year(Date()),Month(Date())+1,0))));
を入れるとよろし。
あとは、当月の年・月を取得してDateserial関数で日付にするとよろし。
714 :
NAME IS NULL :04/03/23 00:18 ID:jRpEYr+Q
703です。 DTPickerコントロールというのを見つけたのですが、 これは難しいでしょうか?
Office 2003 Home エディションがインストールされているパソコンを買った。 Accessが入っていなかったので、Office 2000 Professional から Access 2000 をインストールしてみた。 よかったんだろうか…
いいよ
>>716 Office 2000 をインストールするとき、
インストールするディレクトリの名前をデフォルトの Microsoft Office から
Microsoft Office 2000 なんて感じで変更しておけば問題ないみたい。
あとはちゃんと Office Update をすればいいみたいだ。
なにせ、Microsoft のページには異なるバージョンのOfficeを同居させるのは
好ましくはないが、どうしてもやりたかったら古いバージョンから順に
インストールするように、ってかかれていたんで、プリインストールの場合も
いったんそれを削除しなきゃならないのかと思ってたんだが、
面倒なので Word 2003 とか Excel 2003 がインストールされている状態の
上から PowerPoint 2000 と Access 2000 をインストールした。
今のところ問題なし。
テーブルとかクエリが山ほど増えてくると、 自分なりの名前付けの規則をつけていても 階層化して整理したくなりません? そういういのって無理なんでしょうかね。
山ほど増える前に名前付けの規則を作っておかないと・・・ 名前変更は大変だべー
>>719 ですね…
一般のプログラミングでの変数、クラス、関数なんかと同じように
名前付けの規則だけは作って守ってるんで
不用意な重複とかはないんですが、
一覧表示のウィンドウでそれを反映した表示になってくれればいいなぁ、
という無理な要求。
721 :
NAME IS NULL :04/03/24 15:51 ID:bJpPIPwG
>>717 Format(Date, "yyyymmdd-01")なんてやると
「コンパイルエラー
プロジェクトまたはライブラリが見つかりません」
てでませんか?
>>720 自分は名前と説明欄の命名?規則を作り、
2系統の並べ替えが可能なようにしてます。
>>720 Access2000以降ならデータベースウィンドの「グループ」を
うまく使えば?
DAOを使ったプログラム講座のサイトとか、リファレンスを置いているページってあります?
レコード数が10万件くらいになりそうなテーブルが2・3個あるのだが 検索とかクエリ開く時間が気になります。 余裕で使える範囲でしょうか?
余裕 300万件ぐらいやったことがある 但し、設計に寄るが・・・
>726 詳しくオシエテ。
テキストボックスに4文字以上いれるとメッセージを発する プログラムを作りたいのですが、MIDやLENじゃできません。 いい方法はありますか? 例 if me!テキストボックス > 4文字以上 then msgbox("4文字以上はダメ") else ・・・・ END if の4文字以上って所をどのような記述にすればいいでしょうか?
Lenでできるでしょ。 If Len(Me!テキストボックス) > 4 Then msgbox "4文字以上はダメ" else ・・・・ END if
730 :
726 :04/03/30 21:16 ID:???
keyは2つ以上あったほうがよい そのうちのひとつを大雑把に絞り込める分類などにしておいて indexの順番を最上位にしておき、まずここで絞り込む これで少ない単語のLike検索とかしない限り普通のスピードだった 直接ソースにつなげるとか、コンボやリストボックスに使うのは無謀だと思う
731 :
NAME IS NULL :04/03/30 23:30 ID:IC5Ys4Za
レコード数10万件ってaccessで充分運用できる数なの? たまに聞くけどmdbが破損するってよくある事なんでしょうか
732 :
NAME IS NULL :04/03/31 00:26 ID:4PESV2WG
>>731 MDBの破損は件数の多少に関係なく起こる気がする。
やだなぁ。
システム開発には詳しくない運用部署の者ですが うちの部内システムがフロントエンドを含め全て Access95で作られてて、テキストファイルから 千件のデータを取り込むのに一時間かかってしまうとか 一事が万事こんな調子です。 データベースってこんなに取り込みが遅いもんなんですか?
735 :
NAME IS NULL :04/03/31 06:43 ID:WeVO/eiK
>>734 いやぁ、それでもちょっとかかりすぎだろう。
メモリが足りなくてスワップがりがりしまくりならありえる話だが。
メモリが足りていれば1000件で一時間はかかりすぎ。
>730 やはりそうか。リストビューやコンボにいれるのにかかっていた時間は省けないのね。。 レプリカの同期も時間かかりすぎ。。。 サンクス。
737 :
726 :04/03/31 10:54 ID:???
>736 ローカルに必要なデータだけ吐き出して それを参照すれば (・∀・)イイ!!
>>735 御意
テキストのインポート処理自体の前後で何か
やっているとか、Access95の機能を使わずに
VBAで無理やり処理していれば、内容によっては
ありえるかも。
一行読み込んでは既存のレコードを検索して
突合せをして、加工処理をして登録して・・・
ACCESS2000で、CGIからSQL文で1つのフィールドに対してビットで検索する、 (たとえば、SELECT * FROM TABLE_A WHERE (FIELD_A AND 4)=4 FIELD_Aの中で4=(2進数の100)で3つ目のビットが立ってるものだけ取り出す) みたいなことって出来ないんでしょうか? (604でも同様の質問が出てたみたいですけど) MYSQLでは出来てるみたいなんですが。
>>739 標準モジュールで
Public Function bitand(a, b)
bitand = a And b
End Function
みたいに関数を作ってから
SELECT * FROM TABLE_A WHERE bitand([FIELD_A],4)<>0
とやればとりあえず目的達成だと思います(当方Access97)。
けど、SQLの中だけでなんとかしたいでしょ? 私もなん
とかしようとしたんだけど、And演算の結果がtrueかfalse
にしかならなくてうまくできなかった。スマソ
741 :
739 :04/04/04 17:23 ID:???
>>740 レスありがとうございます。
そうですか、やっぱりそれしかないですか。
私も観念します。
742 :
NAME IS NULL :04/04/06 21:57 ID:hj56WCL/
Access2000以降でもmdbへの接続はADOよりDAOの方が 速いのでしょうか?
>>742 はっきり言って、今のPCでは体感出来るほどの差は
出ない。
厳密に計測すれば、DAOの方が有利とは思うが。
ちなみに、ADOでmdbに接続する場合、レコードセットの
レコードを削除すると、連結先のテーブルのレコードまで
削除されると言う仕様になっていて悩まされる訳だが。
削除されないようにSQL文を工夫して記述するとエラーに
なるしね。
744 :
NAME IS NULL :04/04/07 03:39 ID:+okfhixC
ループ処理で10万件ほどINSERTを繰り返すんですけど、 そうなるとかなり違ってきますか?
>>744 とりあえず、ためしてみれば?
みんな細かい条件がわからないから何とも言えないでしょ。
ちなみにADOだとDBがMDBの場合、SQL文でINSERT INTOで追加するより
レコードセットでAddNewする方が速いらしい。
746 :
NAME IS NULL :04/04/07 10:43 ID:juPhD3PG
ACCESS2000を使用して開発しているのですけれども、 ACCESSのラベルってリフレッシュする機能は無いのでしょうか? VBだとラベル名.Refresh で実現できたのですが・・・。 ループして行う処理の中でラベルのキャプションを更新しているのですが、 何にも表示してくれなくて困っています。 うまくRefreshさせる方法、ありませんでしょうか(;´Д`)
>746 RepaintObject
>>747 タンありがd
無事出来ますた。・゚・(ノД`)・゚・。
749 :
NAME IS NULL :04/04/10 15:30 ID:swVl7Jrl
アクセス大大大初心者です。 基礎の基礎がわかりません。どなたか助けてください(つД`) ちなみに本は3冊買いました・・ 売上管理のDBを作っているのですが、売上データを入力するフォームに 商品番号と商品名を入力するフィールドを複数(3つくらい)おきたいのです。 両方ともコンボボックスで選択入力可能にするつもりです。 いわゆる単票形式と帳票形式の合体してるフォームです。 コンボボックスの作り方などはわかったのですが、フォームに複数の同じ番号、 商品名が選択できるフィールドの作り方がさっぱりわかりません・・・・。 どのようなテーブルとフォームを作成すればよいのでしょうか? 何か参考になるサイトなどがあったらどうか教えてください! かなりDQNな質問で失礼いたしました。
>749 本は買うだけじゃなく、読んで実際に作り理解する所までやらないと意味が無い。 入門書の内容を一通り理解する事が一番の近道。 手取り足取り教えて欲しいなら金払って習いましょう。
751 :
749 :04/04/10 15:49 ID:swVl7Jrl
>>750 買った本の何処にも求めているものが載っていなかった者ですから。汗
ちなみにフォームウィザードで複数のテーブルから項目を選択すると
フォームが真っ白(というか灰色)でフィールドが何もありません。
これはバグなのでしょうか?バージョンは2003でOSはXPです。
載ってないとできないのはつまり理解できてないって事でそ。
それよりも、データベースの概念とデータの持ち方と 言った基礎の基礎知識を勉強する事を強くお薦めする。 そこらの解説書に載っているのは操作方法とフォームの 作り方と、そんなもんだよね。 基礎知識が無いと躓くんですよ。
754 :
NAME IS NULL :04/04/11 17:39 ID:3/Zh3u3a
質問です!どなたか知ってたら教えてください。 Access2000では、Access97形式のDBを読込・出力することができますが、 Access2003では、Access97形式のDBを読込・出力することができるでしょうか? バージョンの異なる作業環境が複数あり、かつ今度新しく Access2003を購入しても良いものかどうかを確認したいのです。
755 :
NAME IS NULL :04/04/13 09:58 ID:gnd8mqEl
>>751 >>753 の言うとおり、Accessの知識どうこうではないと思う。
少なくともあなたのやらんとしていること程度なら即興で1時間くらいで作れるよ。
>コンボボックスの作り方などはわかったのですが、フォームに複数の同じ番号、
>商品名が選択できるフィールドの作り方がさっぱりわかりません・・・・。
いや、フォーム内でコンボボックスに必要なテーブルを表示できてこそ作り方が
わかった、でしょう?
多分あなたは、フォームへコンボボックスを配置するやり方がわかっただけだ。
プロパティ開いて、表示したいコントロール(この場合はテーブル)を指定してみな。
756 :
NAME IS NULL :04/04/13 10:10 ID:gnd8mqEl
参考にするなら、 インプレス発行『できるAccess2000ビジネス活用編』という本がかなり役に立つ。 まだあればの話だが・・・
757 :
NAME IS NULL :04/04/13 20:28 ID:f60KI0nX
Access2000つかってます。電話のフィールドがあり、形態電話番号が入ってます。 これをクエリ上で下4桁しか見えないようにしたいです 具体的な方法を教えてください
758 :
NAME IS NULL :04/04/13 21:43 ID:KYm9mF5S
/ / ヽ \ / :/ } ヽ ヽ / :::/::// / / ノ / i ト、 ヽ ゙ 、 / .:/:::::/: /../ ..::/,イ:ノ .ノ ,イハi::: i iヽヽヽ i .::i:::::/ i:::ノ ...::::::::/ .ィイ :/_}___i:::.i: i ト 、i゙、 | ::i:::::i::. イ, -'" / / /ノノ ,ノ }i: }: } l::. } } ! ::i:::::i:: レシンラミ<"// シテミ;メリ::,イ l:: ノ ノ | ::i ::ri:::..::..|' l::;;゙ '} l:;;゙;:} ソ:/i:レ::/ |::l:::{ハ::::::::i 、ゞ:;;'ノ ゞ;シ /イイ:リ/ Vノ:}::ヽゞ;::ハ `"::::::::. __' :::: ノ,イ:} レ' //::ノ:/イ::l::トゞ、 ヽ__ノ ,.イ;}::リ ノ/::/:/::ハ::kハ. . . ゙ヽ、 ___ , ィ/::ノノ:ハ //イ:/:/⌒ハ::::V ̄ニヽ\/ rー'^ヽ、リハ /イ:::::ノ, へ Y< 、〉r ヽ {Y/i `}\
760 :
NAME IS NULL :04/04/14 00:24 ID:ERxt16wL
>759 GJ
tbl.Find "id like '*1*' " と書くとエラーにはなりませんが、1のついているもの総てを拾ってしまいます。 2*1とか**1って言う風にしたいのですがどうすればエラーにならないようにできますか?
>762 だめでした・・・。
>>761 | 1のついているもの総てを拾ってしまいます。
そうなるように指定してるからだろ。
| 2*1とか**1って言う風にしたいのですが
わかってなさそうだから、どういうデータの絞込みを
したいのか書けよ。
>>763 だからどうダメだったのか書けよ。
765 :
NAME IS NULL :04/04/15 00:14 ID:IJc8M8/L
right([data],1) 抽出条件 1 (下1桁1でしたらどぞ)
ネタ野郎じゃないの?わざわざageてるし・・・。
そうなんですか?
access2000 を win2000 で使う予定です。 住所録を作るとします。 ファイルの数は1つだけにしておきたいです。 あるアカウントでは、全項目を入力・閲覧できるようにします。 別のアカウントからは制限された項目しか閲覧できないように します。 このような運用は具体的にはどうすれば可能でしょうか?
770 :
NAME IS NULL :04/04/16 20:32 ID:7tkEaYqH
サブフォームの中にサブフォームってあり?
アリ・ナシの前に、完全に設計ミス。1からやりなおせ。
グループ化したレポートで、グループフッターを常にページの下部に表示する、 もしくはグループの最後のページだけフッターをつける方法はありますか? 色々試したんですが、グループフッターはどうしても最後のレコードの すぐ後にしか出せなかったので、ページフッターの可視・不可視を グループヘッダー・フッターのフォーマット時に切り替える方法をやってみたのですが、 ちゃんと表示される場合とされない(ページフッターが可視にならない)場合があります。 やっているのは、単純に グループヘッダーフォーマット時に ページフッター.visible = False グループフッターフォーマット時に ページフッター.visible = True だけです。 ページフッター.visible = True を、10行くらい繰り返すとうまくいくことが多いので、 切り替えが表示に間に合っていないだけのような気もします。 うまくやる方法はないでしょうか。
773 :
NAME IS NULL :04/04/17 23:48 ID:76M+RuU/
クエリで出した演算結果をレポートで集計させたいのですがやり方が 良くわかりません。泣 レポートだけでなくクエリ上でも一度演算したものを集計できるのでしょうか?
>>770 多分無し
ただしサブフォーム1の特定のレコードと連動したサブフォーム2を同じFromの
別の場所に貼り付けるのは簡単
どんなことができれば良いかを、具体的に書いたほうが良いと思うがどうだろう。
775 :
NAME IS NULL :04/04/18 13:58 ID:AihTTWFR
2000。列ごとに着色できますか?
776 :
773 :04/04/18 15:53 ID:5e2q77QL
自己解決しまスタ。
777 :
770 :04/04/18 20:34 ID:HaWEs8z6
>>774 まず大きな取引のデータを作って
そこに複数の取引先を入力するためのサブフォームを作る
で、取引先ごとの取引明細を入力するためにサブフォームの中にサブフォーム(とりあえず孫フォームと呼んでいるが)を作ってみた
ACCESSで打ち出すレポート毎にプリンタ名やその他もろもろ、 モジュールを作って、グローバル定数で決めて使いたいんだけど、 レポート側でApplication.Printerとかコードかけないですよね。 何かいい方法ないでしょうか?
>>778 出来なくは無い。構造体で探してみるべし。
APIの制限がモロに入ったり、非常に癖があるが。
追記すると、DEVMODE構造体。 とても面倒で大変だと思うけど、くじけず頑張れ。
AccessからExcel形式でデータを出力したいのですが、出力先のExcelファイルとして すでに計算式が入っているような既存のシート上にデータを書き出すという事は可能でしょうか? 計算式の入ったボックス部分にデータを出力して、シートを開いたときには自動的に計算されて いる、というようなイメージの物です。
782 :
NAME IS NULL :04/04/20 01:32 ID:LRsbJcMq
>>782 レスありがとうございます。
そもそも計算用のブックに手入力するのが面倒という話だったもので、
Excel上で後から修正も効くようにそのような仕様にしたかったのですが
色々調べてますが、やはり難しいでしょうか。
>>778 >>779 Access2002からはVB6のようにPrinterオブジェクトを使えるようになったのでは?
(と聞いているが実際に触っていないので断言できない)
>>781 VBAでEXCELファイルを開いて埋め込むことはできると思いますが…
1. AcceessのAutomationで計算式の入ったXLSファイルをGetObjectし、
ワークシートオブジェクトを取得する
2. 出力するデータのレコードセットをDAOかADOで取得
3. レコードセットをループしながら、Excelワークシートオブジェクトの指定範囲に、
レコードセットのフィールドから取得したデータをセル指定してデータを代入する
4. ブックを保存、閉じる
786 :
NAME IS NULL :04/04/22 14:06 ID:DxKf1Mdu
ACCESS2000でレポートを作成しているのですが、 レポート上にあるテキストボックスの背景色を 変えるため、関数を作成し、その関数の引数に テキストボックスを渡すように作成したのですが、 うまく動作してくれなくて困っています。 Sub PaintTEXTBG(TX As TextBox) Select Case TX.Text Case "0" Me.Controls!TX.BackColor = RGB(10, 100, 0) ・ ・ ・ 指定した式で参照されている'TX'フィールドが見つかりません。 とメッセージが出てしまうんですが、何か間違ってるのでしょうか(;´Д`) 誰かわかる方がいらっしゃったら解決策をおながいすます
>>787 Me.Controls!TX.BackColor = RGB(10, 100, 0)
を
TX.BackColor = RGB(10, 100, 0)
にする。
789 :
787 :04/04/22 18:52 ID:???
>>788 タン
アリガトン。゚(゚´Д`゚)゜。
料金計算のプログラムをつくっているのですが、 tbl.Find "id like '*1*' " と書くとエラーになりませんよね。idとかいてあるテーブルには221、211、201、 222、202、212と6種類あるのですが、このうち下一桁が1のものだけに対して 検索をかけて処理を行いたいのですが、どうしても212のものにも処理が施されて しまいます。どのような記述をすればいいでしょうか? ちなみに'2?1'とか'??1'とやっても「引数が間違った型、許容範囲外、又は競合 しています」というエラーが出てしまいます。いい方法を教えていただけないでしょうか?
>>790 idって数値型のフィールドじゃないか?
だったらLike検索させる場合は、対象をCStr(id)とかにするのが普通
いや普通、数値型には「#」を使う。 わざわざ文字列にする必要なし。 まぁ「*」でも「?」でも「%」でも逝けるんだけどね。 右の「*」が余分なだけだろ。
>791-793 >761 >763 とそれに対するレス群の >762 >764 >765 って、デジャヴか?
>>793 SQL予約語のLikeは、本来文字列に対して行う検索。
それが数値型のフィールドに対して行えるのは、型の違う値の比較を常に
バリアント処理で行ってくれるAccessの親切設計によるものだが時折
>>790 のようなバグが生じることがある。
バグ回避の策としては
>>792 の考え方が最も安全。
ODBC環境があるならビューやパススルークエリでテストしてみ
はじめまして。 初心者です・・・お尋ねしたい事があります。 AccessでフィールドA(オートナンバー型)、フィールドB(テキスト型)。仮にここではAとBとおきます。 そしてフォームでテキストボックスにAの数字を打ち込むと自動的にそれに対応するBを表示させたいです。 それを同じフォーム上に20個程作ってそれぞれ独立させて、そのフォーム上ごと印刷したいです。 調べたのですがどうもわかりません。 どなたかお助けください。
>795 ADO参照でLIKEをつかった検索をすると確かに **1とかはエラーが出てしまいます。 一度フィールドを文字型にしてやってみましたが、結果は同じ。 そこでフィールドの設定とかは全く同じで DAOでやると**1は上手く行きます。 もしかしたらADOでやっているんじゃないでしょうか? ADOではこれはできないようになっているんじゃ・・・。
そもそもidにlikeは使わないと思うんですけど みなさんはどうですか?
>798 根本的にワイルドカードの使い方を間違っているのは 理解しているのか? それをADOの責任にするのは何故かと。 >799 idが数値型のフィールドならな・・・
801 :
NAME IS NULL :04/04/26 22:40 ID:Oe6upCL+
>>800 799です
コード体系が決められているものとかですかね?
私は管理しにくいんで区分とか設けてしまうんですが・・・
私ダメダメですか?
>802 いや、そう言う風に区分を持たせて管理するのが 正当でしょう。 コード体系に意味を持たせて管理なんてやっていたら、 使えるコードが無くなって来て困る、と言う現象に ぶち当たって困っているのが勤務先・・・ で、コードに意味を持たせたコード体系が禁止されました。 やっぱね、それ用の区分をもたせた方がすっきりするし、 扱い易いし、却って分かり易かったりする。
804 :
よろしくどうぞ :04/04/27 00:34 ID:bfsCUZrU
sylkファイルをテーブルにインポートするVBAの記述を教えていただけませんか。 ワンクリックで…。
Access2000でレポート表示時に画像を使ってるんですけど、 画像を用意しないでデータぼんぼん追加してくれるものだから、 ところどころ画像の参照先が無いところがあるんですが、 画像が存在しないレコードを一覧として抽出できないでしょうか? 現状では、画像が格納されているフォルダがあり、 テーブルで作成された画像パスの項目に画像が、 「格納されているフォルダパス&画像ファイル名」の画像パスが記述されていっている状態です。 何とか良い知恵を拝借できないでしょうか。 外部のリストソフト使ってcsvで画像パス一覧を吐き出して、それと重複クエリでやろうと思ったんですが、 これだとあまりスマートな方法ではないし、手間も掛かってしまうので。
>>805 >画像を用意しないでデータぼんぼん追加してくれるものだから、
画像パスのフィールドにファイル名は入ってないだろうから、クエリーでも作ってみたら。
Accessデータベースをネットワークで使用するのは根本的に間違ってますか?
808 :
NAME IS NULL :04/05/01 11:58 ID:tdHwyQ7Z
テーブルの「日」 というフィールドに 01 02 03・・・・などと入っていたとします クエリでこれに 2004/4/を加えてさら年月日として認識させたいんですが、どうすればよいのでしょうか? "2004/04/"&[日] で。書式を年月日に変えるだけではダメなんでしょうか? よろしくお願いします
>>808 そこまで具体的に思いつくなら、直ぐに試せ。
10分で結果が分かるだろうに。
810 :
NAME IS NULL :04/05/01 12:34 ID:tdHwyQ7Z
>>810 "2004/04/" & [日]の結果が「2004/04/04」になるなら、
そのままでも自動変換で認識する筈だが・・・
Cdate使ってみ。
>>807 排他使用なら、ネットワークの速度次第。
>812 やっぱり排他は絶対条件なのね。 MSDEにしたほうがよさげか・・・ よくわかんねぇんだよなぁ。
>>808 CDate("2004/04/"&[日])
データ型を100回調べろ!
>808は 日1 日2 日3 ・・・ 日31 01 02 03 ・・・ 31 ってかんじの横に長いテーブルを元に 日1 2004/04/01 日2 2004/04/02 ・・・ 日31 2004/04/31 という結果を求めたいとか言い出さないだろうな。
816 :
808 :04/05/01 20:52 ID:tdHwyQ7Z
すいません、結局ぜんぜん違うフィールドでミスっていました(TT 簡単にできた・・・・・・
817 :
NAME IS NULL :04/05/01 20:54 ID:uFnuqvWw
818 :
NAME IS NULL :04/05/02 12:31 ID:kng9JGfP
#Errorの値が返ってきたときに、True、Falseを返す関数ってありますか? Iserrorはうまくいかなかった っていうか、#Errorは関係ないらしい・・
>>813 推奨できる方法じゃないのでsage。
Win98/Meに格納されてるDATA mdbに、テーブルリンクでアクセスする分には、
複数クライアントで同時使用できた実績アリ。
SAMBAとか、Win2k WinXPだと_ぽ。
昨日ノジマでACCESS2003アカデミック版買いまつた。 12670円でした。
821 :
NAME IS NULL :04/05/04 22:50 ID:L8K+p4mD
FreeBSDのレンタルサーバ上にpostgresのDBがあり、 mdbファイル上に、ODBC経由で(上記DBの)リンクテーブルを、作成しました。 そして、そのリンクテーブルの中の値を変更しようとしたら、 警告音が出て、全く変更できません。 いったいなぜなのでしょうか? 教えて頂ければ幸いです。
822 :
NAME IS NULL :04/05/05 00:56 ID:bpn0/yj6
ageテスト
>>821 ユーザー権限とかは大丈夫なのか?
あと、ODBCドライバやPostgresのバージョン晒さないと詳しい事はわからないと思われ。
MSDEデータベースをMDBにリンク(ODBC)張って使ってもネットワーク使用時の問題は解決できない。 ということで間違ってませんか? 結局MDBはログ取らないから問題なんだよね?
間違ってるも何も、具体的に何が問題なのか書いてないじゃん
MDBを共有したときの問題って言わずと知れてるじゃん。
>>823-824 さん、ありがとうございます。
失礼しました。
環境は、
FreeBSD 4.7-RELEASE-p22、Postfres 7.3.4
と、
WinXP-Pro SP1、MS-ACCESS2003 です、
で、
>>824 さんがビンゴでした。
ついめんどくさい設定していなかったです。
しかし、また新たな問題が、、、
リンクテーブルの値を変更しようとするろ、
あるテーブルのみ、
-------------------------------------------------------------
このレコードはほかのユーザによって変更されています。[レコードの保存]を選択すると、
他ユーザのによる変更を無視し、自分が行った変更を反映します。
[クリップボードにコピー]を選択すると変更したデータはクリップボードにコピーされ、
他ユーザによる変更が反映されます。必要に応じて、クリップボードのデータを貼り付け、
自分が変更したデータに戻すことはできます。
[レコードの保存] [クリップボードにコピー] [他ユーザによる変更を反映]
(レコードの保存]だけ、グレーアウトして選択できない)
-------------------------------------------------------------
といわれてしまいます。(正常なテーブルは正常)なにが違うのかわかりません。。。
どなたかお助けを。。。
829 :
828 :04/05/07 15:35 ID:???
追記;失礼しました。 ODBCのバージョンは07.01.0006 です
フォ−ムで画像(JPG or BMP)を読み込むようにしています。
その際、フォ−ム下にあるレコ−ド移動ボタンを押してレコ−ドの切り替え
(同時にフォ−ムのの表示内容も切り替わります)を行うとAccess自体が落ちる
という現象が起こります。
画像を読み込まない場合は落ちません。
他サイトにて、同様の事象を発見しましたが、
ユ−ザの方で、レコ−ド移動ボタンを外さないで欲しいとの要望があり、
他サイトの方法では対応できません。
何か良い解決策をご存知の方が居りましたら、
知恵をご提供いただきたいと思います。
参考URL
ttp://www.accessclub.jp/bbs2/0001/beginter00198.html
831 :
NAME IS NULL :04/05/08 00:21 ID:yDi9SUAr
本は沢山売っているけど リファレンスとして使えるいい本がないね お勧めある?
>>828 列を減らしたテーブルを作って、どの列が問題なっているか調べるとか、
列の型を変えてみたり、名前を変えてみたりするとか、
やってみることは色々ある。
833 :
NAME IS NULL :04/05/09 12:00 ID:pLqHZzQa
初心者からこつこつ勉強して在庫や商品管理のDBを作ってます。 なんとか簡易版ですができました。WEBを利用して在庫数の確認や 更新ができるようにしたいのですが、さっぱりです。WEBサーバーが 必要?なんてのを多少、耳にしたのですが、どうでしょうか? また、購入しないとできないのでしょうか?お願いします。 誰か助けて下さい(>_<)
webというのがインターネットを意味するのか、それとも社内LANのみを意味するのかで 敷居の高さも変わってきます。 ユーザインタフェースをwebブラウザベースで作りDBをACCESSで作るけれども、 社内LANのみで運用するというのであれば、比較的難易度は低いと思います。 (簡単という意味ではありませんが) そうではなくインターネットの世界に公開するというのであれば、ACCESS云々よりも もっと難しい問題が色々と出てきます。
835 :
NAME IS NULL :04/05/09 19:28 ID:pLqHZzQa
>>834 ありがとうございます。自分では社内LANではなくインターネット
を利用したWEBアプリを作りたいと思っています。(工場と営業所が
離れているため、インターネットを使うしかないので)本当はプロの方に
作ってもらうのが一番なのですが、新規事業として会社設立の為、なかなか
システム構築などに経費をかけれません・・・(^_^;)
大体でも結構ですので、WEBアプリの作り方を教えて頂けたらと思います。
当方、ACCESS 2000を利用してDBを作っています。宜しくお願いします。
>>835 厳しいようですが、セキュリティの問題は非常に重要だと
言う事を承知できないのであれば、インターネットを使うような物を
作りべきではありません。
ネットワーク構成から、サーバー、アプリケーションに到るまで
セキュリティを意識して構築できなければ、何が起きても
不思議ではありません。
アプリケーション・サービス・プロバイダの利用を考えたらどうか。
で、Webアプリケーションの作り方と簡単に言うが、簡単な
セミナーでも、3日15万円コースの量なんだが、ここで聞くかね?
http://www.hitachi-ia.co.jp/h_comp/flow/web.htm 本格的にやると、ざっとこれだけの事は勉強する事になるんだが。
MDBとASPを使った入門書もあるぞ。(いまさらASPはお薦めせんが)
>>835 2chで聞いたくらいでWEBアプリが簡単にできるようだったら
俺なんか失業だよ
自分で勉強 スレ (´∀`( ´∀`) チガイ
>>835 IISとASPとAccess(または SQL Server)使えばそれなりのものが出来るかもしれんが、かなりリスキー。
スクリプトキディー(ガキ)のいたずらでシステム停止するのが落ち。
そんなことするぐらいなら、VPN組むことを考えたほうが楽だYO。
ってか、漏れがやるなら、PostgreSQL+Perl+Apacheでやるけどね。
839 :
NAME IS NULL :04/05/09 22:56 ID:pLqHZzQa
>>836 〜<<838
ご意見有難うございました。社員30〜40人程度の規模だったので、ある程度
は自分で作れるかな!?とは思っていましたが、やはり厳しいようですね!
もう少し勉強してみて検討しようと思います。もしインターネット以外の
方法でDBを共有できるような都合の良い方法(無いとは思いますが・・・)
があれば、ご指導下さい。宜しくお願いします。
840 :
838 :04/05/09 23:03 ID:Fm9eTSy/
>>839 だから、VPNって言ってるだろYO。
VPNって簡単に言うと、仮想専用線。
インターネット等の共用回線網の中に暗号化した経路を用意すること。
プロバイダ等のサービスを利用するか、Flets等回線側のサービスを利用するか、
VPNゲートウェイ(ルータや自前サーバ)を用意して実現するか、どれかでOK。
これ使うと、インターネット等経由でLANの中のごとく扱える。
とりあえず、VPNって言葉でググるなり、プロバイダに相談するなり汁。
841 :
NAME IS NULL :04/05/09 23:12 ID:sAs3heUR
はじめましてです。 このたび、会社にてIISを用いて、ASP+Accessで WEBデータベースシステムを作りそうな気配になっております。 で、ASP〜!!!!!!と思っているのですが、 たとえばこの先、今の会社を辞めた場合、ASP+データベースで 食べていけるのでしょうか・・・?
何だそりゃ 質問ですらねーな 食べていけないっつったら、仕事断るの?
>>841 そんなのお前の性格と能力しだいだろう。
ASPでもまともなモノを組めて、営業努力を怠らなければ独立して食っていける。
たとえPHPでもJSPでも、性格悪けりゃ客に嫌われて食いっぱぐれる。
つぶしが利くかどうかは結局、基本となる標準規格が決まっている技術(HTTP,HTML,SQL)を
どれだけ習得できるかだろ?
標準が決まっていない部分の言語依存を極力排除した設計が出来れば、ASPだろうがCGIだろうが関係ない。
少なくともアプリケーションの心臓部はAccess(DAO?ADO?SQL?)で動くわけだから、
ユーザインタフェースがASPだろうと、VBAのフォームだろうと、C#の外部プログラムだろうと、実装ベースは同じ。
そこの本質を見極めた設計が出来て、性格良ければ、食いっぱぐれ率はかなり下がる罠。
844 :
NAME IS NULL :04/05/09 23:35 ID:sAs3heUR
いやいや、仕事として需要があるのかどうかというのを 聞きたかったのですよ(^^; 言葉足らずですいませんm(_ _)m ASP+Accessでなくても。SQLServerとの組み合わせとか、 Oracleとか・・・ どうなのでしょうか?
>>844 「ASPで」って事を意識しないと組めないのか?
サーバサイドでHTML組み立てるだけだろ?
その方法論がSSI+CGIなのか、ASPなのか・・・・の違いだけで、本質は何も変わらない。
お前の言い方は、頭の固いコボラーと同じに見える。
「コボルは仕事としての需要ありますか?」って聞いてくる。
「お前はプログラマじゃないのか?ロジックの組み立てはどの言語も同じだろ?リファレンス見てやれよ!」
と思うのは漏れだけ?需要云々言う前に自分で道を切り開いてみたらどうYO?
ColdFusionもあるでよ
847 :
NAME IS NULL :04/05/11 13:44 ID:qiDsoBU9
ちょっとお聞きしたいのですが、 重さ付きの木をデータベースで表現し、 上位ノードに対して数値が割り当てられると、下位の数値が算出されるようにしたいのですが、 どのようなアルゴリズムが考えられるでしょうか? 現状では、「親ID 子ID 重さ」をもつテーブルを用意し、DAOで親で絞り込んだのを開いて計算してます。 現状システムでは階層数が1桁だったので、何とか動いているのですが、 階層数を2桁に拡張する案件が出て来ていて、パフォーマンス改善が必要になりそうです。 SQLでまとめて計算する方法を考えたのですが、うまく思いつきません。 細かい条件は、 ・2桁分階層がある木 ・木の枝は再利用される(親A0-子A1-孫A2 親B0-子A1-孫A2 がありうる) ・孫の値=親の値*子の重み*孫の重み ・一から実装しなおしを覚悟してます。 ・将来的にはクラサバに移植する予定なので、できればSQLで処理したい。 誰か手伝って(TT
848 :
NAME IS NULL :04/05/11 15:11 ID:G2w96kI+
部品展開だったら、n階層までの無限にできるだろう。もちろん再起処理をつかってるんだろ
・木の枝は再利用される(親A0-子A1-孫A2 親B0-子A1-孫A2 がありうる) がネックになる悪寒
850 :
NAME IS NULL :04/05/11 21:21 ID:G2w96kI+
>>849 それって普通の考え方じゃん。それが出来なきゃ意味無いじゃん。
851 :
NAME IS NULL :04/05/11 21:38 ID:G2w96kI+
>>847 現在のバージョンのSQLではその処理は実装されていません。
普通のSQLサーバーにはSQLを組み合わせるマクロのようなものが実装されており
それで処理します。またサーバー上のプログラム言語からSQLをコントロールします。
アクセスの場合はVBAで簡単に処理することが出来ます。100桁くらいの階層は可能です。
852 :
NAME IS NULL :04/05/11 21:39 ID:G2w96kI+
訂正 100桁 100階層
853 :
847 :04/05/11 23:19 ID:???
>>848 再起処理でやってます。
DAOでレコードセットをオープンして再起処理を使ってますが、
出来ればSQLベースで処理させたいんです。
あと、パフォーマンスの向上も課題の一つです。
>>849 >>850 現行で、この部分には問題は発生していません。
>>851 サブクエリによる処理とか、ワークテーブルによる処理なんかを思いついてはいるんですが、
ノウハウをお持ちの識者の方のご意見がいただければと思い、質問しました。
サブクエリだと、階層が増える毎にSQL文がどんどん増え、2桁の後半にはかなりヤバそうで・・・。
ワークテーブルを用意する方法だと、処理が遅くなりそうだし・・・。
テーブル構造に改善の余地がありそうだと思うのですが、そこから先が思いつきません。
854 :
NAME IS NULL :04/05/11 23:39 ID:G2w96kI+
具体的にSQLサーバーは何を使うんだい?
855 :
847 :04/05/12 09:59 ID:???
>>854 SQLサーバを使うとかそういうことじゃなく、イントラクラサバに移行する予定があるので、その際に他のRDBMS上に移植するって事です。
もちろん、Accessが有利な部分はAccessをクライアントにしますが、Accessでなくても良い部分はWebブラウザをクライアントにしようと考えています。
予算の関係もあり、MySQLかPostgreSQLにCGI (ブラウザクライアント用)とODBC(Access用)を併用して実現しようと計画しているんですが、
現時点で階層を増やす作業が出たので、高速化のついでに、CGIクライアントにも手軽に移植できるように「VBA(DAO)で実現している部分」を
「SQL化」したいと考えているわけです。
で、テーブル構造も含めた改修を計画したのですが、どうも思いつきません。
別件の障害が上がってきてて、そっちの対応にも脳みそリソースをとられているせいかも知れません。
そこで、ヒントだけでもいいので、なにかアイディアを分けていただければと思いました。
ちなみに、現状のシステムではWindowsMeマシンをファイルサーバにしてデータおよびマスタのmdbを入れ、
複数のクライアント(WinMe/Win2k/WinXP)にプログラムmdbを入れて運用しています。
#かなり微妙な構成ですが、ロックに関する問題や上書きでの問題は今の所発生していません。
Win2kやWinXP、NAS、SAMBA等をファイルサーバにしてmdbを共有しようとしましたが失敗するので、次のメジャーUPでクラサバODBC化する予定です。
856 :
NAME IS NULL :04/05/12 10:20 ID:iEHInYeS
処理速度が遅い? マスターデーターが大きいのかな ふつうに階層なんかは10レベルくらいあればいけるんだけど
Access超初心者です。 教えてもらいたいのですが、レポートを印刷する際に フォーム上のチェックボックスに、チェックされた時は出荷先コードが変わるたびに改ページし、 チェックされなかったときは、改ページされないようにしたいのですが、何かいい方法はないでしょうか。 よろしくお願いします。
レポートを、改ページするのとしないのを2種類用意して、 チェックボックスの値によって出力レポートを切り替えるというのはいかがか
マクロでもVbaでもお好みで
860 :
857 :04/05/17 14:55 ID:???
なんとかやり方見つけて作ることができました(TT レスくれた方ありがとうございました。
泣くな(w 乙彼さん
862 :
NAME IS NULL :04/05/19 04:21 ID:iEFTCgKB
初心者です。皆さん、少しだけ教えて頂けませんか!? レポートの件なのですが、作業報告書を入力・印刷したいのですが、 日付を =NOW() としていて印刷プレビューをすると現在の時刻が表示されますよね!? ここまでは良いのですが、後日にそのデータをもう一度印刷しようとすると、 日付が後日の日付に変わってしまいます。どのようにしたらよいのでしょうか? また、印刷プレビュー時に印刷のアイコンをクリックすると全ページ分を印刷して しまいます。その都度、印刷ページの設定をするのもなんなので、もっと良い方法は ないのでしょうか?上級者の方から見れば簡単すぎるのでしょうが、僕はこれで10日間 悩んでも答えが見つかりません。お願いします。助けてください(TT
>>862 10日も悩む間に本買うか、ネットでぐぐれ
素人でも半日もあれば解決するぞ
> 日付が後日の日付に変わってしまいます。
日付を格納するフィールドを作って印刷時にそこに日にちを保存
> 印刷プレビュー時に印刷のアイコンをクリックすると全ページ分を印刷して
しまいます。
印刷したいものだけをクエリーなり別テーブルなりに吐き出してからそれをレポートソースにしる
864 :
NAME IS NULL :04/05/19 13:24 ID:fULRE3oY
ィールド1にテキスト型で A001 A002 A003 A999 B001 B002 C001 と入れています。 先頭にAが付いているデータを抽出するというのは可能でしょうか? 可能であれば条件設定を教えていただけないでしょうか。
865 :
864 :04/05/19 13:26 ID:???
前文が欠けてしまいました、すいません。 抽出クエリーについて教えて頂きたいのですが、 フィールド1にテキスト型で A001 A002 A003 A999 B001 B002 C001 と入れています。 先頭にAが付いているデータを抽出するというのは可能でしょうか?
866 :
NAME IS NULL :04/05/19 13:56 ID:YGv7pYWs
867 :
NAME IS NULL :04/05/19 15:15 ID:fULRE3oY
>866 助かりました、ありがとうございました。
868 :
NAME IS NULL :04/05/19 20:53 ID:8yE5kupj
>863 ありがとうございました<m(__)m> 早速、挑戦してみます。
まったく的外れな質問かもしれないけど、 Accessをサーバー代わりにして、ほかのクライアントから接続する場合、 *.mdbは共有フォルダにおかないとダメ? SQLServerみたくTCP/IP経由でmdbファイルを認識する方法はありますか?
ACCESS2K(かな?)以降にいえるのだけど NT4以降のWinサーバー環境で、(サーバーだけではないかも、NT系がPCサーバー用途の環境の場合) リンクテーブルをつかうと極端にレスポンス落ちませんか? テーブルを開くだけで1分くらいかかるようになる。 MS技術情報とかで「サブデータシート名をOFFにする。」等あるのですべて実践したが改善できない。 「あらかじめ、リンクテーブルを開いておく」とかなり改善するが、相変わらず、固まる(時間がかかる)タイミングがある。 (この時ハブをみるとコリジョン信号を多発しているようです) これは、ギガビットイーサー環境でも変わらないし、AC97なら100Base環境でもさくさく動く。 原因は何でしょう? 基本的にAC2K以降って使い物にならなくありませんか?(重いし、ヘルプは糞だし)
>>869 それはデータ構築かサーバーの問題では?
接続方法は何?
NT4.0はどうだか知らないけど2000、2003でも問題ないよ
質問です。 Access2000のVBAからサブフォームのビュー(フォームビュー/データシートビュー) を変更する方法を教えてください。CurrentView プロパティで取得できることまでは わかったのですが、肝心の変更方法がわかりません。 どなたかご教示願えませんでしょうか。
Access2000のテーブルデザインビューでフィールドセレクタや主キーインジケータが非表示になってしまいました。 データシートビューでもフィールドセレクタが消えています。どうすれば戻るか、お教えください。
875 :
NAME IS NULL :04/05/21 15:09 ID:X0LlWSQ4
フォーカスを取得時に、現在入っているデータをクリアする方法なんてあるますか? 教えていただければ幸いです。
>>875 何のフォーカス取得時?
テキストボックスなんかなら Me.テキストボックス名 = Null
>876 テキストボックスでした。ありがと
878 :
NAME IS NULL :04/05/23 13:45 ID:K2fPyIPs
Office2000Proの中のAccess2000をフルオプションでインストールしたのですが、 DAO関連のヘルプトピックが表示できません。削除・再インストしても駄目。 (OpenRecordset等。関連付けられてないとエラーが出る) VisualBasic関連や、Access関連(CurrentDB、等)のトピックは出るのですが。 こんな症状が出た方、対処法しっている方がいたら教えてください。
879 :
878 :04/05/23 13:46 ID:???
OSはWinXPです。
>>878 Access2000でADOとかDAOのヘルプが一部出ないバグがあったはず。
MSのサイトとか見てみ。
881 :
NAME IS NULL :04/05/24 17:47 ID:6r0K7ZWx
フォーム上でフィールドAがnullだったらフィールドBには進めなくしたいのですが どこをどうコントロールすれば良いのでしょうか?御教授お願いします。
>>881 フィールドBのタブストップをFalseにするとか。
でもマウスでクリックされると無意味。
883 :
NAME IS NULL :04/05/24 20:13 ID:9hAcDchb
フィールドBにフォーカスが移ったときに フィールドAを見て判断する
クエリーで集計の中にグループ化という処理がありますが、 実際のテーブルの値をテーブル上でグループ化ことは可能ですか? だとすればどのような記述をすればいいですか?
885 :
NAME IS NULL :04/05/24 23:25 ID:Ik3+PA30
>884 何をしたいのか分からない 例えみたいな奴書いて
テーブルの元データがなくなっちゃってもいいなら そりゃいくらでもやり方はあるわけだが
887 :
884 :04/05/25 09:42 ID:???
そうですね。わかりやすく言うとですね、 今月買ったもの リンゴ 100円 みかん 50円 アンパン 70円 りんご 150円 肉 80円 みかん 800円 バナナ 300円 アンパン 300円 リンゴ 900円 こんな感じでリンゴなら合計いくら? アンパンなら合計いくら? クエリーで集計のグループ化で簡単に出来ますけど テーブルの中で直接グループ化したいのですが、 VBAで記述するにはどうすればいいですか?
888 :
NAME IS NULL :04/05/25 09:51 ID:xnhonw8Q
なおさら分からん。 集計結果を直接テーブルに保存したい ってことか?
890 :
884 :04/05/25 11:12 ID:???
リンゴならリンゴをテーブルで直接ひとまとめ にしたいのです。
891 :
NAME IS NULL :04/05/25 12:13 ID:+W3QelmS
>>890 集計のクエリは作れるんだしょ?
じゃあ、そのクエリをテーブル作成クエリにして、集計結果を新しいテーブルに保存しちまえば…?
ダメ?
892 :
NAME IS NULL :04/05/25 12:21 ID:+W3QelmS
ごめん、作成クエリなんてあったっけ? 携帯からなんでワカンネ でも、Workのテーブル用意して、集計クエリを追加クエリにして集計結果をブチ込んでめいいじゃん? ダメ?
893 :
884 :04/05/25 14:14 ID:???
>892 モジュールの勉強も兼ねてモジュールでプログラミング できならなあって思っていたんです。 だから方法があればなあって。
894 :
NAME IS NULL :04/05/25 14:59 ID:3djPOBUW
選択クエリーで フィールド 重量 出庫 式1;[重量]*[出庫] 29.4 1 29.3999996185303 何で式1の結果は29.4にならないんですか?29.4にするにはどうしたらいいでしょうか?
四捨五入したらいいんでないかい
>>894 重量のデータ型を「通貨型」にするといいよ
>>894 浮動小数点型の仕様
式1:CDbl(Format([重量]*[出庫],"0.0"))
とかに汁
898 :
894 :04/05/25 15:49 ID:3djPOBUW
>895 >896 >897 ありがとうございました。とりあえず「通貨型」の結果で満足しました。 式1:CDbl(Format([重量]*[出庫],"0.0")) … 勉強になりました。またよろしくお願いします。
899 :
NAME IS NULL :04/05/25 16:03 ID:+W3QelmS
>>893 テメェでADOでSQLたたいてみたいってか
なら参考書見た方が早い希ガス…
ここで漏れ達が書いて教えるの、ツラいもんがあるぜ?
家に帰ったらやってみてもいいが
>>878 Office 2000 の CD-ROM から DAO360.CHM
を下記のディレクトリにコピーする。
C:\Program Files\Common Files\Microsoft Shared\DAO\
901 :
878 :04/05/26 03:52 ID:???
902 :
884 :04/05/27 10:29 ID:???
>899 それでSQL使ってやってみたのですが、 実行時エラー2342 RUNSQL/SQLの実行アクションを利用するにはSQLスタートメント からなる 引数が必要ですとでてしまうのですが・・・。 ちなみにソースプログラムは Private Sub 合計_Click() Dim sql As String sql = "SELECT 顧客番号 FROM 合計金額 GROUP BY 顧客番号" DoCmd.RunSQL sql End Sub
>>902 >sql = "SELECT 顧客番号 FROM 合計金額 GROUP BY 顧客番号"
の最後に「;」がないよ
904 :
884 :04/05/27 11:45 ID:???
>903 それでもだめでした・・・。
>>904 まずはConnectionString教えれ。
俺にはただの選択クエリに見えるのだが
907 :
884 :04/05/27 14:21 ID:???
ConnectionStringですか? これに関してはよくわからないのですが、記述はしていないです。
>>906 の言うとおり、DoCmd.RunSQLで選択クエリ(要するにselect文)実行してどうする、
という話だと思われ
その集計の結果をどう使いまわすのかによって、やることは変わってくるが、
例えば集計の結果をレコードセットに取るなら
Set レコードセット = Currentdb.Execute ( sql ) のような感じだし
集計の結果をフォームやレポートのソースにするなら
フォーム/レポート.recordsource = sql のような感じだし
新規クエリーを作りたいのなら
currentdb.createquerydef ("",sql)のような感じだし
とりあえず何がしたいのか書いてほしい。
909 :
884 :04/05/27 14:53 ID:???
>903 テーブルにある顧客番号をグループ化して その顧客番号ごとの料金を合算させて合計金額を出すという処理を やりたいんです。 クエリーでこの処理ができるのはわかっているのですが、 モジュールの記述にてテーブルを直接いじりたいというのがあるんです。
910 :
908 :04/05/27 15:08 ID:???
いまいちよく分からん。 元のテーブルがあって、それを顧客ごとに集計したクエリを作るというのは よく分かるが、それを「テーブル上で集計して直接いじる」というのが良く分からん。 いくら集計しても、元のテーブルの内容は何ら変わらんでしょ? @元(テーブル) 顧客番号 料金 日付 -------- ---- ---- 顧客A \100 5/26 顧客A \150 5/27 顧客B \200 5/26 顧客B \250 5/27 ↓ A集計(クエリ) 顧客番号 料金 -------- ---- 顧客A \250 顧客B \450 でしょ?このAを直接いじりたい、っていうことなの?
>>907 コネクションを設定してないからSQLが動いて無いのでは?
試しに
SELECT * FROM 合計金額 ;
みたいな簡単なSQLを実行してみそ。
それが成功したなら次はAccessのクエリ機能を使って本当に表示したいSQLを実行してみな。
どこでエラーが起きてるのか探すのが先決。
912 :
884 :04/05/27 15:23 ID:???
>908 いえ、@のテーブルをいじってAのようにしようと思ったのです。 それはやっぱだめですか?
913 :
884 :04/05/27 15:27 ID:???
もとのテーブルをAのように変化させようとしたのです。
914 :
908 :04/05/27 15:46 ID:???
「変化」は無理だろう、普通に。いやしくもAccessはRDBだから、 テーブルの構造をほいほい変えたりは普通はやらない。 (ちなみに、クエリだって、元のテーブルをいじっているわけではない。 クエリというのはあくまで計算式だ。) ただ、@を元にAというテーブルを別個に作ることなら出来る。 それこそDocmd.RunSQL で "select [顧客番号]、sum(料金) as [合計料金] into [別テーブル名] from [元テーブル] group by [顧客番号]" を実行すればよろしい。 "select 〜 into " は選択クエリの結果で新規テーブルを作るjet構文。 当然ながら、[別テーブル名]が既にデータベースにあったら、エラーに なるから、「そのテーブルがデータベースにあったらdropする」という 手順が必要になることに留意。
915 :
884 :04/05/28 12:54 ID:???
>908、教えてくれた皆さん。 ありがとうございました。おかげさまで望んだ処理ができました。
916 :
NAME IS NULL :04/05/28 17:27 ID:7OPWyqFn
エクセルで現在管理中のDBをアクセスで管理したいそうなのですが アクセスは一度も触ったことが無くて容易にできるのかできないのか 解りません。 VBA等を使って自力でやってくれとのことなのですが 一応PGの経験は有りますがアクセス素人でも2〜3ヶ月あればできるでしょうか? とんちんかんな質問ですが解る範囲でどなたかご教授くださいませ。
>>916 本買って集中して学習すればそれだけの時間があればなんとかなる。
ただし、少なくとも「容易」ではないぜよ。
よく知っている人が隣にいるとそれだけで大幅効率アップなんだけどな。
>916 Excelでやってる現在の業務の内容次第。 簡単な社員名簿ならAccess初心者でも1ヶ月もかかんないだろうし、逆に 販売管理なんぞを1から作るならとても3ヶ月じゃおさまらないと思ー
919 :
NAME IS NULL :04/05/28 21:07 ID:t5dksWco
漏れの会社の営業のごみめらがアクセス使って顧客管理しているらしいが、 あたしって天才??って大声で言ってたんだけど、 そんなに難しいモンなの? そうとはおもえないんだけど、。 データベース設計もせずやってるみたいで、あとからあとから機能を追加しテルっぽい。 しょぼいシステム作ってそうなんだけど、みにいってやらない。
920 :
NAME IS NULL :04/05/28 21:09 ID:t5dksWco
漏れの会社の営業のごみめらがアクセス使って顧客管理しているらしいが、 あたしって天才??って大声で言ってたんだけど、 そんなに難しいモンなの? そうとはおもえないんだけど、。 データベース設計もせずやってるみたいで、あとからあとから機能を追加しテルっぽい。 しょぼいシステム作ってそうなんだけど、みにいってやらない。
921 :
NAME IS NULL :04/05/28 21:11 ID:t5dksWco
漏れの会社の営業のごみめらがアクセス使って顧客管理しているらしいが、 あたしって天才??って大声で言ってたんだけど、 そんなに難しいモンなの? そうとはおもえないんだけど、。 データベース設計もせずやってるみたいで、あとからあとから機能を追加しテルっぽい。 しょぼいシステム作ってそうなんだけど、みにいってやらない。
必要上から画像をリンクさせた データベースを作ろうと思っているのだが 数千枚ある画像を一括して印刷出力なんぞできるんだろうか? そんなの作ったことのある人いるかい?
必要上から画像をリンクさせた データベースを作ろうと思っているのだが 数千枚ある画像を一括して印刷出力なんぞできるんだろうか? そんなの作ったことのある人いるかい?
924 :
NAME IS NULL :04/05/28 21:59 ID:MMkR7x31
「やったことないけど、アクセスなんて簡単なんだろ?時間がないからやらないけど」→ 一生ゴミ
925 :
NAME IS NULL :04/05/28 23:48 ID:9r+OnDsn
>>919-921 乙カレー(w
とりあえず昨日はJimタソに感謝感謝
>そんなに難しいモンなの?
使用目的によりけり。いくらでも難しくすることもできるしまた逆も然り。
>データベース設計もせずやってるみたいで
正規化くらい覚えてからやれと。
>>922-923 >必要上から画像をリンクさせた
>データベースを作ろうと思っているのだが
もっと具体的に教えれ。
印刷したいだけなら、画像保存ファイルを呼び出して出力するコードを
ちゃちゃっと入れればいいだけ。
927 :
NAME IS NULL :04/05/29 06:25 ID:L64/5/TR
Accessでショッピングサイトを製作する会社が在りますが大丈夫なんでしょうか?
>>923 それなりのOCX利用すれば簡単だよ。
つい最近作ったし。
連続印刷は簡単だけど、紙切れ検出とかその後の継続印刷の方が
面倒かもしれない。
>>927 大丈夫大丈夫。どうせIIS使ってるならセキュリティは同じだから。
930 :
NAME IS NULL :04/05/29 11:50 ID:jNegBdZ0
みなさん教えて下さい!テーブルに商品名というフィールドを作って、 そこの中からレコードを抽出したいのですが、Google みたいな感じの キーワードで検索という方法はできるのでしょうか!? ACCESSは勉強中ですので、良かったらわかりやすく教えて頂きたいです。 宜しくお願いします。
WHERE 商品名 LIKE '%うんこ%'
Likeでいいんじゃないの?
漏れもLikeって書こうと思ったけど、Likeでやるとキーワード複数に対応できない罠。 スペースを"|"に置き換えて、正規表現使えればイイんだろうけど・・・調べるからちょっと待っとき。
934 :
933 :04/05/29 12:55 ID:???
とりあえず、ワークテーブルつくって、そこにスペース区切りでキーワード切り出して入れて、 WHERE 商品名 ANY (SELECT キーワード FROM ワークテーブル) で、やってみそ。
935 :
NAME IS NULL :04/05/29 13:12 ID:jNegBdZ0
>>931 〜934
ありがとうございました!
自分でもLikeを使って作ってみたのですが、複数のキーワードに対応
できずに困っていました。助かりましたm(_ _)m
936 :
933 :04/05/29 15:20 ID:???
>>935 そういう時は「複数キーワード対応にするには?」と書け。
BuildCriteria()をうまく使えばいいんじゃね?
938 :
OCR作成 :04/05/31 21:00 ID:SfwwBETg
すみません、初歩的な質問で申し訳ないのですがどなたかお答えお願いします。 Access (Ver.2000以上)で、住所録などのデータをOCR用紙に転記 (印刷) させるにはどうしたらいいのでしょうか? 市販のアドインでそういう製品があるでしょうか? どなたかおねがいします <m(__)m> 。
普通にレポート作ればいいよ
940 :
NAME IS NULL :04/05/31 22:24 ID:Dja+Zb2C
全く同意
DAOで値を取得する場合の質問なんですが フィールド名を動的に設定することって可能でしょうか? テーブルのフィールド数が150近くあり、変数に入れたフィールド名を使いたいのですが上手くいきません。 Set rs = db.OpenRecordset("select * from TABLE", dbOpenDynaset) GetFieldName = "取得したいフィールド名" Return = rs![GetFieldName] ’ここが上手くいかない
Return = rs.Fields(GetFieldName)
943 :
NAME IS NULL :04/06/01 13:30 ID:/K4PEhlc
テーブルのフィールドの1つのデータのみを テキストボックスに表示させたいのです。 どうしたらいいですか? 例 番号 物 1 車 2 電車 3 飛行機 この場合テキストボックスには車を表示させたいのです。 そしてその後処理が終わったあとテキストボックスを空にして 電車、飛行機と最初から最後まで表示させるようにしたいのです。
>>943 txtBox = rs("物").Value
945 :
943 :
04/06/01 14:32 ID:/K4PEhlc >944 ソースプログラムは下記の通りですが、 コンパイルエラー メソッドまたはデータメンバが見つかりません。 とでてしまいます。 Private Sub 合算2_Click() Dim db(2) As DAO.Database Dim tbl(2) As DAO.Recordset Set db(0) = CurrentDb Set tbl(0) = db(0).OpenRecordset("請求", dbOpenDynaset) Me!テキスト5 = db(0)("sender_h323id").Value End Sub