トップページ⇒tech
1001コメント375KB

Access使い集合!

■ このスレッドは過去ログ倉庫に格納されています
0001名無しきぼうNGNG
UNIX時間(1970年から秒単位10桁やつ)を
Access or VB で yyyy/mm/dd hh:mm:ss に変換する方法を
教えて下され!
0159デフォルトの名無しさんNGNG
>>158
正規化してテーブル分割を行った結果、テーブルが大量に増えたのであれば、
それはそれでいいんじゃない?

仮定として、1つの小カテゴリが複数の大カテゴリに所属する可能性がない
(大カテゴリと小カテゴリの関係は1対多であって、多対多ではない)のであれば、
企業テーブルと顧客カテゴリテーブルの2つでも作れますね。
0160デフォルトの名無しさんNGNG
すみません。誰か助けてください。

現在、複数列を出力するレポートを作成しております。
レコード件数によってレポートヘッダーに配置した
見出しラベルの表示・非表示を制御をしようと思い、

if レコード件数>20 then
ラベル.Visible=True
else
ラベル.Visible=False
end if
というコードをレポートの詳細フォーマットに記述したのですが、
表示・非表示が切り替わりません。
Debug.Print ラベル.Visible でプロパティを確認したところ、
プロパティ自体はきちんと設定されているのに、
プレビュー表示には反映されていません
これはどういう現象なんでしょうか
0161160NGNG
あ、しまったsageにチェックいれたままだった。
ageさせてください。
0162デフォルトの名無しさんNGNG
>>160
詳細に書いてもだめ。
そういう場合一番簡単なのは、ヘッダーのラベルコントロルを
テキストコントロルに変えて、
値を=iif(sum(xxx)>20,"ふーん","")みたいな感じがよいと思う。
0163160NGNG
>>162
素早い返答ありがとうございます。
文字だけだったならばその方法でいけるのですが、
ラベルの枠線を表示して表形式のタイトルにしてあるのです。
枠線の表示・非表示の切り替えは
やはりコードを記述するしかないと思うのですが
どのイベントに記述すれば変更が反映されるのでしょうか?

Visibleプロパティが反映してくれさえすればよいのですが・・・・。
0164160NGNG
あ、すみません。自己解決しました。
作成したレポートはサブレポートとして使用するものだったのですが、
メインレポートの詳細フォーマットイベントにコードを記述したら
なんとか表示・非表示を切り替えてくれました。

お騒がせいたしました。m(__)m
0165デフォルトのNGNG
アクセスのCREATE構文でオートナンバーの型を指定するにはどうしたらいいのでしょうか?
どなたかご教授ください。

0166デフォルトの名無しさんNGNG
Access2002使ってるよ(開発はしてない)。
ビューとストアドの変わりにクエリーってなってた、、、中は同じだが。
ピボットテーブル要らねー。
2000の時から思ってたのだが、あのバカHELPはもう治らんのか?>M$
0167名無しNGNG
未だAccess97なんですけど…開発環境。
取り残されてるぅぅ。
0168デフォルトの名無しさんNGNG
>>167
Access97は自宅では現役だぞ〜〜〜!!(爆)
半年前までは、Ac1.1から2000まで入れていたが・・・<職場
0169デフォルトの名無しさんNGNG
少なくともヘルプの出来に関しては97最強(ワラ
0170名無しNGNG
>>169
確かにヘルプにはお世話になりました。
現在はOracleと繋いで開発しております。
0171デフォルトの名無しさんNGNG
>167
 大丈夫。MDBな限り、2000も2002もそうは変わらないよ。
Helpに関しては97が最強と違うか?
 ただ、2002からプリンタオブジェクト?が加わって、レポート
関連が幸せになったらしいが。
 客先でチマチマとプリンタを設定せずに済むならイイナー。
0172デフォルトの名無しさんNGNG
Acは97が一番良かった。
2002は、まださわってないですけど
0173デフォルトの名無しさんNGNG
>167
うちもAccess97です。それどころかあと3年間は社内で
Ac97とAc2kが共存するので、開発はAc97で、実行は
97、2kどちらでも動かなければいけない。そういうわけで
あと3年間Ac97で作らなければいけません(涙
既存mdbアプリをWeb化すべく、java勉強しています。
それでもデータベースはmdbかMSDE(号泣
0174名無しNGNG
確かに97で作ったのを2000で動かすと動かないのが
多いですが、困ったもんですね。気を付けることって
ありますか?
0175173NGNG
>174
97mdbを2000mdbに変換し、Ac2kで変換後2000mdbを動かす場合
サブフォームの更新が時々うまく行きません
(Me!サブフォーム.SourceObject = Me!サブフォーム.SourceObject)
最初から2000mdbを作って同じプログラムを書くと、きちんと動いている
ので、この時点でもう作り直すしかないと思いました。
そういうわけで、Ac2kと97を共存させるのなら、97mdbをベースに
し、2kmdbに変換しないこと。(回答になってなくて失礼)

97mdbをAc2kで97モードで動かすように変換後、Ac2kで動かす
・オブジェクトの追加・削除ができません。テーブルやクエリーを
削除して作り替えているようなものは(リンク張り替え含む)
テーブル=データを全て削除後にデータを追加
クエリー削除=クエリーのSQLプロパティを変更する
・DloopUp関数などのDなんとか関数の戻り値に2バイト文字があると
文字化けするので、RecordSetを使って書き換え
・関連つきファイルを起動する時は、Shell関数ではなくShellExecute使用
・Format関数の書式が0.###+#のように符号付き指数にすると、戻り値に
余分な0がつくので削除する
0176デフォルトの名無しさんNGNG
>>174
いったいどんな作り方すると、動かない奴が出てくるんだ?
漏れの作った奴で不具合が出たものは一つもないが(w
0177 ◆SQLyndSs NGNG
>>176

VBA使ってると自ずと動かないところが出てくると思うが。
まったく動かないということはないだろう。
0178176NGNG
>>176
今まで作ったもの
(ちなみにネットでも公開している、ユーザ数も軽く数千)
97→2000→XPいずれも不具合の経験無し

逆にどんなことで引っかかるか教えてほしいものだ(w

0179デフォルトの名無しさんNGNG
>>178
175に書いてあることはどうなの?
0180178NGNG
>97mdbを2000mdbに変換し、Ac2kで変換後2000mdbを動かす場合
>サブフォームの更新が時々うまく行きません
こんなことなったことないが・・・
元々の作りに問題があるだけだろ
0181デフォルトの名無しさんNGNG
>>180
じゃ、結論として97で作ったものは2000で動くと。それでいいね?
0182178NGNG
>>181
だからそう書いただろ?
どうやったら不具合が出るのかを知りたいのだ
0183デフォルトの名無しさんNGNG
>>182
自分で「作りかたが悪い」から不具合がでるって
書いてるやん。
0184175NGNG
話が進んでいますね。
うーん、サブフォームの更新はいろいろ書き方があるのですが、
私はSourceObjectプロパティを書き換えて更新するのが確実
だと思っています。私が書いたことは実際に起こったことだし、
私の技量は中級ぐらいかと。
サブフォームは親フォームと非連結です。不定期に更新されない
ようだったので、私は97mdbファイルは、2000mdbに変換しても
100%動作保証されないと思っています。
178さん、あなたならサブフォーム更新をどのように書きますか?
まじで教えて下さい。私は前述のように、
Me!サブフォーム.SourceObject = Me!サブフォーム.SourceObject
です。
あと、Accessでも比較的簡単なプログラムでは、問題なく動いていました。
0185178NGNG
>サブフォームは親フォームと非連結です。
これは当然として・・

>私はSourceObjectプロパティを書き換えて更新するのが確実
だと思っています
これをやるいみがわからんなぁ・・・
無論漏れはやりません。
それにここだけエラーが出るなら回避すればいいと思うが(w
0186175NGNG
>178さん
あるテーブルのデータをサブフォームで表示していて、
テーブルのデータを更新後、サブフォームの表示を
更新する場合はどのように書かれますか?
おそらく私がへぼいだけだと思いますが、
Me.Requery
では、サブフォームまで更新されないことがあったので、
SourceObjectプロパティを書き換えているのです。
Access97でこの方法だと、私が作ったものに関しては
100%更新されます。
0187デフォルトの名無しさんNGNG
緊急です!
Microsoft Jet のエラーで
「1つ以上の必要なパラメーターが設定されていません」
というのはどういうときに出るエラーでしょうか?
またその対処方法は何でしょうか?
お願いします!
0188デフォルトの名無しさんNGNG
>187
何をやっててそのエラーが出たかを明示すると吉。
SQL文がおかしい時にも出たような。
0189178NGNG
175
>更新する場合はどのように書かれますか?
>おそらく私がへぼいだけだと思いますが、
>Me.Requery
FAQだな
リクエリーは、テーブルのデータを再読み込みするに過ぎない
テーブルにデータをきちんと書き込む前にrequeryを行ったところで
更新はされない。
リクエリーの前にきちんとテーブルに書き込むように。

0190187NGNG
>>188
解決しました。
すみません、無いフィールドに対して UPDATE 実行してました・・・。
逝ってきます!
0191デフォルトの名無しさんNGNG
>>186
よくわかんねぇけど、その場合親フォームからだと
Me.サブフォームコントロール名.form.requery
じゃないのか?
0192175NGNG
>178さん
Requeryの前にきちんとテーブルに書き込むとは、

recordset.Update
recordset.Close
db.Close
Me.Requery

のことでしょうか?(Docmd.RunSQL後にRequeryでもよさそうですね)
0193175NGNG
>191さん
あなたの言う通り。
192の「Me.Requery」を「Me!サブフォーム.Form.Requery」
にするとばっちりでした。そう言えばFormプロパティを使って
〜と書いたことがあったんだった。
厨をさらしてしまったです。
この書き方でAc2kとの比較をしたことはないなぁ。いつも
SourceObject強制書き換えだったし。ありがとう。
0194デフォルトの名無しさんNGNG
>192
Docmdって基本的に非同期実行だったはずなんで、あんまり
使わないほうが幸せになれそうな気がします。
0195通りががりNGNG
>>193
それで動いたのなら、そもそも>>175の
「最初から2000mdbを作って同じプログラムを書くと、きちんと動いている 」
は、つじつまが合わないんでないかい?
dlookupの件も別のところに問題があるってことはないの?

別に揚げ足を取る気はないのだが、
ACCESSを非難する意見(mdbがすぐ壊れるとか)の多くは、
使い方が間違ってることの方が多いいように思う。

それからこれも揚げ足取りではないし>>193に言っているわけでもないが、
97>2000への移行で問題を出したくないなら、
なんで変換だけで終わりにするのよ?
新規で2000MDBを作成して、そこにAC97から2000に変換したMDB
からオブジェクトをインポートするんだよ。
その後は、一つ一つテストして問題ないかどうか試せばOK。

別にACCESSを擁護する筋合いはないのだが、
なんか不当に低く評価されているような気がするので書いてみました。
0196あんつNGNG
テーブルで他のテーブルの一覧から選択して自動的に入力できるようにするにはどうしたらいいの?
フォームではできるのですが。。
0197VBA厨房NGNG
VBAでクエリで表どうしを外部結合→表作成すると時間がかかる
またはAccessがフリーズしてしまうので

「フィルタで抽出した1レコードをテーブルの1レコードとして作る」
これを繰り返し実行してテーブル作成ってできるんですかね?
どうしたらいいんでしょうか?
Access使うなってのは無しで
0198175NGNG
>>195
>なんか不当に低く評価されているような気がするので書いてみました。
これはそうなのだが(w
仕事がVBとかCばっかりくるのよね。。逆らっても仕方ないし(w

個人的にはAccessがよいのだがな(w

0199デフォルトの名無しさんNGNG
>>197 とりあえず・・・ACCESS使うな。
0200デフォルトの名無しさんNGNG
>>196
フィールドのルックアップをコンボにして〜って感じ?
0201デフォルトの名無しさんNGNG
>>197
何をやろうとしてるのかサッパリわからん
テーブル作製なり、追加のSQL作ってCurrentdb.Executeじゃいかんの?
0202デフォルトの名無しさんNGNG
1
0203デフォルトの名無しさんNGNG
>197
 テーブルを沢山作りたいって話?できんことはないでしょうが、
CreateTableつかって地道にシコシコやるかね。
 あるいはさ、そのフィルタの抽出元と、新たに作成するテーブルって、
同様のフィールド内容になるわけでしょ。
 だったら、空のマスターテーブル作って、Docmd.CopyObjectした後、
フィルタ抽出後にINSERTかけてやれば?
 
 てゆーかむしろ、テーブルわんさかと作成するような処理がどんなモノなんか
気になるね。そっちの具体的説明してもらったほうが、幸せなカンジ。
 ほかに処理方法ありそうだけど。設計は大丈夫?
0204 NGNG
ADO使う
0205デフォルトの名無しさんNGNG
>131
http://ws.31rsm.ne.jp/~mahou/ac2000/gaibu/g05.htm

リンク切れてるよん(W
0206175NGNG
>195さん
私の書き方が足りないようです。
DLookUp関数の件は間違いないです。実際に動かしてみて再現しますので。
もちろん全てがそうとは言えないでしょうけれど、こちらででる以上は
対策をしなければいけませんし。
サブフォームの件は別の書き方がある、というのを教えて頂いただけで、
それを2000で検証したわけではありません。もちろん検証結果によって
次からこの方法に変えるでしょう。しかし、SourceObjectを更新する
方法はAc2kでも有効(のように見える)ですし、私が前述したことは
事実です。

私は予算が少ない仕事ばかりだったせいか、Access(たまにVB)の
開発が圧倒的に多いです。AccessはVBのようにVBA主体で作ると、
VBと何ら変わりがないと思います。レポート機能、mdb内でワークテーブル、
クエリーを自由に持つことができるのは、大きなメリットだと思われます。
適切な運用方法を取れば、安いコストでRDBを使えるわけですから。
0207デフォルトの名無しさんNGNG
>>175
おまえがもしこれで飯食ってるならDLookUp関数(D系関数)
等使うのはやめておけ。
コードが見づらい上、遅い、インデックス効かないなどなど
デメリットだらけだ。オマケに問題もあるようだしな(w

プロなら、データはSQLでサクッと取得しろ
0208195NGNG
>>175=>>206
なんか、話が食い違っているので、気になっておいらも試してみた。
AC2Kでは確かに、親フォームをrequeryするだけでサブフォームも更新されるようになってる。
以前のバージョンでは更新されなかったのに。
これをもって>>175の見解となったわけだね。

おいらはサブフォームを更新するときには、前から>>191が書いた方法で
やってたから、逆にAC2Kで、こんなことが出来ると思ってなくて>>195を書いたんだよ。
結果として中傷になってしまったことはあやまりまする。ごめんよ。

でも、サブフォームをいじる場合、例えばプロパティー参照とかの場合は、
forms!親フォーム.form!サブフォーム!サブフォームのコントロル!.XXXX
とするのはACCESSではFAQレベルだよ。

Dlookupの件も、少なくともおいらは一度も不具合を感じたことがありません。
逆に、再現性があるなら書いてよ。こっちでも試してみるから。

>>207
indexが効かない、遅いというのはそうなんだけど、
起動時に1回だけ参照するような場合は、結構便利だよ。
テーブルに2〜3000程度のレコードしかない場合(中小企業の顧客マスタとか)だと、
関数使ってもそれほど変わらないから、おいらは使ってる。

コードの見易さは・・・書き方次第かな?
素直に変数に入れてそこにコメント入れておけば、見にくいということはないと思う。
まあ、どんな関数も使い方次第だろうけどね。
0209195NGNG
>>208
追伸。突っ込まれる前に書いておく。
最近のVBAでは、!を使うのはタコってことになってるらしいね。
おいらも勉強しなきゃ!
0210デフォルトの名無しさんNGNG
「!」って駄目なの?Me!txtCode.valueとかの?
「.」より速いってヘルプに書いてあったから使ってたけど。
0211デフォルトの名無しさんNGNG
>>208
>indexが効かない、遅いというのはそうなんだけど、
>起動時に1回だけ参照するような場合は、結構便利だよ。
SQL使ったって大して手間かからんだろ?
もっとも漏れは関数化してるがな
まぁ。割り切って使うなら否定はしないが。。

ちなみに漏れは、D系関数・Find系メソッドを山盛り
使ってるやつを、瞬時に「ヘタレ厨房」と断定している(w
0212デフォルトの名無しさんNGNG
・IIf大量使用
・D系関数大量使用
・レコードセットを開いている
・Find系大量使用

コレをループの中でやられた日にゃぁ
0213175NGNG
>208
195さん検証して下さってどうもです。
ほとんど独学状態なので、怪しいところは突っ込んで下さい(^^
説明不足なのはご容赦下さい。私Requeryをほとんど使わないです。
プロパティを強引に書き換えて更新するのが好きで(w
サブフォームで入力させるようなフォームをほとんど書かないので、
たまにサブフォームを参照しようとすると思い出すのに苦労します。
DLookUp関数ですが、普通の書き方です。戻り値が2バイト値を含む
値を、LabelコントロールのCaptionに設定すると、文字化けが
たまにおこるんです。Ac97mdbをAc2k上で、97モードとして変換して
Ac2k上で97モードで動かす場合に発生しました。

Me!の!はアクセススピードが速いといろんな本で見かけました。
そのため使っています。.と!をどのように使うかが分かっていれば
どちらでもいいのではないでしょうか?
D系関数は、対象テーブルのデータ数が少ない場合には使ってもいいと
思っています。もちろん207さん、212さんにも激しく同意です。
SQLでさくっとがよいですね。

どうにか周りを説き伏せて、Javaへ移行しようと勉強中です。
教えてくれる人がいないので、本と2ちゃんが頼りです(w
皆さんはソフト会社勤務ですか?うらやましいです。
0214デフォルトの名無しさんNGNG
(1) Forms!フォーム2!テキスト0 = Forms!フォーム2!テキスト0 + Forms!フォーム2!テキスト2
(2) Forms("フォーム2").テキスト0 = Forms("フォーム2").テキスト0 + Forms("フォーム2").テキスト2

それぞれのコードを10000回実行したところ、
(1)が8秒
(2)が12秒
という結果でした。
結構差が出ますね。
「!」より「.」のが書くときは楽なんですが。

実行環境はAccess2000です。
0215デフォルトの名無しさんNGNG
その値が正しいなら一回130nsの差だ。気にするな。
0216デフォルトの名無しさんNGNG
a
0217デフォルトの名無しさんNGNG
>214
 ! が実行速度が云々ってより、どっかのBBSで、「古臭い」って指摘受けて
以来使っていない。実害はあるのかね → !
 文法上消えそうってなら大問題だと思うけど。
0218デフォルトの名無しさんNGNG
>195
 ! がタコな理由ってわかります?
自分は最近使わないよーに心がけてるんだけど、某BBSで
「古臭い」って意見があって、タコな理由としてはイマイチ
納得できん状態のまま。実害ってないの?
 D系はインデックス効けば結構使えたりすると思うんだがねー。
ちろっとテーブルの中身見るときには便利だと思うが、
 F系、IIFを使われると結構鬱だね。

>212
 そん中に
 ・Like大量発生
 ってのも入れといて。てゆーか今、そーゆーコードが別窓で
 開いてたりする
0219218NGNG
>217
 ごめん、被った。
0220デフォルトの名無しさんNGNG
皮?
0221デフォルトの名無しさんNGNG
WindowsXP上でAccess95使ってる人っているかなぁ〜?

Accessを起動してからMDBを読み込めば問題ないんだけど、
拡張子MDBファイルをAccess95で開く設定にすると、
うまく立ち上がらないんだけど・・・
ウチの環境だけの問題なのかなぁ??
0222デフォルトの名無しさんNGNG
Access97のmdbをAccess2000へ変換、Access2000上で動かすと、
アプリケーションエラーが出て逝ってしまいます。
連結フォームでデータ入力、データファイルは皆で共有という
危険なシステムなんですが、連結フォームで新しいデータを入力
すると、文字を入力した途端にメモリ違反状態です。
ファイルの最適化・修復・新規ファイルにエクスポート、データファイルの
最適化などでも治りません。
このままだと作り替えなのですが、このような状態になられた
方はいらっしゃらないでしょうか?
ちなみにコンパイルエラーなどは全くありません。
0223デフォルトの名無しさんNGNG
>>222
>すると、文字を入力した途端にメモリ違反状態です。
まず、どこで不具合が出るか特定してから聞け。
コードも無しに落ちるようなこと無いだろが?
0224デフォルトの名無しさんNGNG
助けてください。
上司が[得意先��]って感じのフィールド名を多用します。
0225デフォルトの名無しさんNGNG
>>224
SJIS環境だけなら問題ないんじゃない。
0226デフォルトの名無しさんNGNG
>>224
このあいだ引き継いだソフトのバグとってたら
フィールド名が[得意先��]でソースのなかで[得意先No.]って書いてましたがなにか?
0227デフォルトの名無しさんNGNG
カラム名には、漏れは半角英数しかつかわんな・・・
日本語使いたい時もグッとこらえている(w
0228デフォルトの名無しさんNGNG
>>226
発見しづらいバグだねぇ。
昔ひらがなの「へ」とカタカナの「ヘ」違いでばぐったことがある。
0229デフォルトの名無しさんNGNG
[得意先コード]って普通、英語では[CustomCode]であってる?
Customerのほうがいいのか?
0230デフォルトの名無しさんNGNG
>>229
[TokuisakiCode]
[DenpyoKubun]
0231デフォルトの名無しさんNGNG
>>230
>DenpyoKubun
漏れもこう書いている(w
下手に英語使うと意味わからんくなって自爆するし(w
0232デフォルトの名無しさんNGNG
ところで、なんでフィールド・カラムの2通りの呼び名が
流通してるんだろ?
0233デフォルトの名無しさんNGNG
質問です。
AccessからSQLServer上のテーブル(リンクテーブル)を
リネームすることは可能でしょうか?
どなたかわかる方よろしくお願いします。
Access97とSQLServer6.5です。
0234デフォルトの名無しさんNGNG
>>233
SQLServer上のテーブルをリネームってのは無理じゃない?
クライアントに存在するリンクテーブルオブジェクト名を変更するのなら簡単だろうけど。
Accessクライアントから見れば同じ事だ。
0235デフォルトの名無しさんNGNG
>>234
やはり無理ですか・・・
ありがとうございました。
0236MidnightNGNG
>233
新しいテーブル名でCREATEして、INSERTして、旧テーブルをDROP。
最後にリンク張りなおし、とかじゃダメ?
0237デフォルトの名無しさんNGNG
>233
SELECT * FROM table;
っていうビューを作ったらどう?

…テーブルのリネームが必要な設計って一体?
0238 ◆SQLyndSs NGNG
>>233
パススルークエリー使えばいいんでないのん?
0239デフォルトの名無しさんNGNG
>>236
「最後にリンク張り直し」のところをテーブル名のリネームにしたいんですけど…

>>237
CSVファイルから、ただインサートする処理です。
ただしCSVファイルの正誤を1レコードずつ行わないといけないので…
既存のデータはアップデート、新規はインサート、おかしいデータはエラー
ログを書き出しと言う形です。

一件ずつ処理するには遅すぎるので、サーバの新テーブルに直接インポート
して旧テーブルと比較、それで旧テーブルをドロップ、新テーブルを旧テー
ブルの名前にリネームという感じにしたかったんですが…
0240デフォルトの名無しさんNGNG
>>238
すいません、初心者なもんで・・・
なんですか、そりゃ?
0241 ◆SQLyndSs NGNG
>>240
パススルー クエリー
このクエリーは、Microsoft SQL Server などの ODBC データベースに、サーバーに対応するコマンドを使って直接コマンドを送ります。たとえば、パススルー クエリーを使ってレコードを取得したり、データを変更したりできます。

ヘルプくらい見ようよ…。
0242デフォルトの名無しさんNGNG
>223
コードは全くないんです。本当にデータの新規追加時は、
連結フォームの機能に頼りっきりです。
VBA実行中にここで落ちた!なら報告のしようもあるの
ですが、新規追加用フィールドに文字を入力した途端
(もちろんイベントプロシージャ一切なし)にメモリ違反
で落ちるんです。

社内のヘルプデスクにきくと、回避方法はありませんと
言われてしまいました。しかし、連結フォームで新規追加が
できないわけではないので、結局作り替えかなぁと思います。
0243223NGNG
>242
atok使ってないか?
0244223NGNG
>>242
追加
漏れの経験では、コントロール数が多すぎると不安定になるな。
元の奴からコントロールを出来るだけ取り変換し、後で少しずつ
追加してみ。
>社内のヘルプデスクにきくと、回避方法はありませんと
>言われてしまいました。しかし、連結フォームで新規追加が
>できないわけではないので、結局作り替えかなぁと思います。
たいがい、作り方がショボイのが原因だ(w
0245242NGNG
223さん、ありがとうです〜
ATOKは使っていません。おじさん達は分かりませんが、
新しいWindows2000には絶対に入っていません。
個人的にはATOK萌えなんですが。
作り方がしょぼいには激しく同意いたします。

コントロール数は多めです。
切りはりしながら実験してみますです。

ところで、某サイトとのマルチポストになるのですが、
どうかお許し下さい。
Access2000のコンボボックスに数値データを入力
した後に、文字列を入力すると、入力したデータ型
不正エラーが出てしまいます。(非連結フォームです)
0246242NGNG
Win2000、Access2000です。

親フォーム:サブフォーム枠 frmDetail、テキストボックスtxtdata、ボタンあり
サブフォーム:コンボボックス cmbdata

どちらも非連結フォームです。
親フォームのテキストボックスに好きな値を入力し、ボタンをクリックすると、
サブフォームの内容が書き換わります。
以下はボタンクリック時の処理です。

With Me!frmDetail.Form
.cmbdata = Null
.cmbdata.Tag = ""
.cmbdata.Format = ""
.cmbdata.RowSourceType = "Table/Query"
.cmbdata = Me!txtdata
.cmbdata.RowSource = ""

.cmbdata = Me!txtdata ←ここでエラーが発生
.cmbdata.RowSource = "select VALUE from T_WRK_TEST order by ID;"
End With

回避する方法はないでしょうか?
詳しい方、どうかご教授下さい。
0247デフォルトの名無しさんNGNG
>>246
さすがに厨房すぎて快投する気にならんな(w
0248242NGNG
>247
そう言わずにぜひお教え下さい。
97では動いていたんです。こういう使い方が間違えているのかも
しれないけれど・・・
0249デフォルトの名無しさんNGNG
>>246
無意味な箇所がイパーイ
0250デフォルトの名無しさんNGNG
つーかエラーでなかったぞ
WinXP,Access2002だけど。
とりあえず名前をDataを先頭大文字にして欲しかったり
0251デフォルトの名無しさんNGNG
まんまコピペしたけどエラーでなかった。
Win2000,Access2000で。

つーか
Me.frmDetail.Form.cmbData = Me.txtData
だけでいいんじゃないか?
各イベントでRowSorce書き換えるようなソフトなんざ、メンテ面倒だぞゴルァ

実はコンボボックスとみせかけて、実はリストボックスなんていうオチじゃないよね?
0252246NGNG
みなさんどうもです。
問題のコントロールは間違いなくコンボボックスです。
なんでこんな処理かというと、クライアントがExcelっぽい
入力をしたい、値の候補は出せと言って・・・
で、左側に部品名一覧リストボックスを配置して、入力したい
部品をクリックすると、右側のコンボボックスが表みたいに1列に
並んだところに表示される。で、部品毎にスペック(データ型)は
ばらばらなので、ある1つのコンボボックスには文字型、数値、
金額型のデータが入れ替わり表示され、そのデータ一覧が
RowSourceに設定されるという設計なんです。
メンテは私1人がやっております。
Access2000でエラーでませんか?サービスパックは何
でしょうか?Microsoftに問い合わせると、そういう仕様
なんだと言われました・・・

作った私も不条理だと思う処理です(涙
0253デフォルトの名無しさんNGNG
>作った私も不条理だと思う処理です(涙
あーた、、、こんなん作って金取ってたら不条理でっせ(藁
0254デフォルトの名無しさんNGNG
>>252
思いついたことをいろいろ試してみるしかないね。
DoEventsいれるとか。RowSourceの設定と代入を逆にしてみるとか
なぜエラーが発生するのか原因を追求したいのならば別だけど
動かすことが先決ならばそうした方がいいと思う。

0255252NGNG
>253
そんな〜クライアントの要望だったんです〜〜
これでも頑張ったんです〜
>254
唯一の可能性が、RowSourceに設定するクエリーで、表示されるフィールドを
文字型にするとうまくいくらしい、です。CStrをかけて試してみます。
頑張ってみます。
0256デフォルトの名無しさんNGNG
>>252の説明がさっぱり理解できないのはオレだけですか?
1つの方法でダメだと思ったら別の方法も考えなよ。
0257sageNGNG
質問があります。
一つのフィールドの中に「山田 花子,やまだ はなこ,女」
のような複数の情報をもったレコードがあります。
これらの情報を「山田 花子」、「やまだ はなこ」のように
分割して別々のコンボボックスでリストを作りたいんですが、
どのようにすればよいでしょうか?
自分で調べてもどうしても分からないんです。
よろしくお願いします。

0258デフォルトの名無しさんNGNG
>>257
カンマ区切りであればカンマまで取り出してリストにすればいいのでは?

でも、1つのフィールドに複数の情報を持っていることがおかしいし、
ばらばらに表示させた後何をさせるつもりなの?
設計から考え直すことをおすすめします。
■ このスレッドは過去ログ倉庫に格納されています