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

Access使い集合!

■ このスレッドは過去ログ倉庫に格納されています
0001名無しきぼうNGNG
UNIX時間(1970年から秒単位10桁やつ)を
Access or VB で yyyy/mm/dd hh:mm:ss に変換する方法を
教えて下され!
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つのフィールドに複数の情報を持っていることがおかしいし、
ばらばらに表示させた後何をさせるつもりなの?
設計から考え直すことをおすすめします。
0259デフォルトの名無しさんNGNG
>>257
テーブル構造に氏名、氏名かな、性別を持たせる。
DB系アプリではプログラムで妙な処理をせずに
テーブル構造に素直に反映させた法が良いかと。

んで駄目ならSplit関数でばらして処理かな...
0260デフォルトの名無しさんNGNG
納品書って英語ではinvoice?
っていうか、販売管理用語の英訳載ってるサイト無いですか?
0261デフォルトの名無しさんNGNG
>>260
それは請求書。
普通の和英でもでてると思うが。
0262デフォルトの名無しさんNGNG
>>260
英語でテーブル名つけるか・・・ハマルゾ(藁
0263デフォルトの名無しさんNGNG
ウチの会社、テーブル名「請求書」「業者」「銀行」…。
わかりやすすぎ。
0264デフォルトの名無しさんNGNG
テーブルの頭にはT_とか何とかつけたほうが便利っぽい
0265デフォルトの名無しさんNGNG
>>264
おれもテーブル名で悩んだことがあるけど「T_」は、つけないほうが良い気がする。
テーブルでもクエリーでも振る舞いは同じなので区別する必要は無いと思うのです。
なんとなくだけど。
0266デフォルトの名無しさんNGNG
ローカルのマスタテーブルはL_
データテーブルはT_
とかしてる。
0267junNGNG
アクセス使いのみなさん質問よろしいでしょうか?

アクセスでOLEオブジェクトでBMP画像を格納して
それを、VC++6.0にODBCで接続して BMP画像をLongバイナリ
データで読み込むのですが、VCで表示するために

BYTE *p = (BYTE*)GlobalLock(m_pSet->m_column1.m_hData);

FILE *fp = fopen("aaa.bmp", "wb");

fwrite(p, 1, m_pSet->m_column1.m_dwDataLength, fp);

fclose(fp);

GlobalUnlock(m_pSet->m_column1.m_hData);

(m_column1 という変数が ロングバイナリはいってます)

とやったのですが、aaa.bmpというロングバイナリにbmp拡張子
つけてみたんですが、ファイルの作成はできるのですが
表示が できません・・・たぶん バイナリデータの頭に
アクセスでペイントを開くデータがあるからだと思います。
どうやって解決したらよいでしょうか?
おねがいします! ながなが すみません!
0268デフォルトの名無しさんNGNG
クソ質問投げるなよ
まず質問の仕方ってのがあるだろ。
m_pSetってなんだよ。
0269デフォルトの名無しさんNGNG
BITMAPINFOHEADERかRIFFのヘッダが入ってるんとちがう?
つーかできたファイルをダンプしてみりゃわかる。
ダンプして貼りつけろ。
0270デフォルトの名無しさんNGNG
ダンプっつーのはこういうやつだから。
掲示板だとずれるかなあ
76 65 72 6c 6f 61 64 69 - 6e 67 20 23 3c 20 69 73 verloading #< is
20 61 20 62 61 64 20 69 - 64 65 61 2e 0a 0a 20 2d a bad idea... -
20 4d 61 63 69 65 6a 20 - 53 74 61 63 68 6f 77 69 Maciej Stachowi
61 6b 0a                     ak.
0271junNGNG
>>268
クソ質問ごめんなさい!!
でも、反応ありがとうございます!
m_pSet とは RecordSetクラスのポインタです!

>>269 270
ダンプとは、これでよいのでしょうか?
化けっちゃってるんですが・・?
00000000 15 1c 38 00 02 00 00 00 - 16 00 0e 00 14 00 2a 00 ..8...........*.
00000010 ff ff ff ff 83 72 83 62 - 83 67 83 7d 83 62 83 76 ....ビットマップ
00000020 20 83 43 83 81 81 5b 83 - 57 00 50 61 69 6e 74 2e イメ..ジ.Paint.
00000030 50 69 63 74 75 72 65 00 - 01 05 00 00 02 00 00 00 Picture.........
00000040 07 00 00 00 50 42 72 75 - 73 68 00 00 00 00 00 00 ....PBrush......
00000050 00 00 00 40 30 01 00 42 - 4d 36 30 01 00 00 00 00 [email protected].....
00000060 00 36 04 00 00 28 00 00 - 00 40 01 00 00 f0 00 00 .6...(...@......
00000070 00 01 00 08 00 00 00 00 - 00 00 2c 01 00 00 00 00 ..........,.....
00000080 00 00 00 00 00 00 00 00 - 00 00 00 00 00 00 00 00 ................
00000090 00 ff ff ff 00 16 15 36 - 00 59 56 8b 00 28 26 42 .......6.YV..(&B
000000a0 00 14 13 1d 00 27 1f 58 - 00 29 1e 6a 00 55 3c 98 .....'.X.).j.U<.
0272デフォルトの名無しさんNGNG
>>261
英語のNorthwindと照らし合わせたら納品書がinvoiceってなってた
0273デフォルトの名無しさんNGNG
T_ Q_ F_ R_ M_ とか付けたがるコボラーは氏んでください。
0274デフォルトの名無しさんNGNG
>>272
業種とか会社とかにもよると思うが、納品書=請求書って場合も
結構あるからね。
多分英語で納品書という単語はないと思う。(知らないだけかも)
そのあたりの概念の話になるような気がする。
納品はdeliveryかな・・・。(自信なし)
0275デフォルトの名無しさんNGNG
 OLEオブジェクト型にWAVEサウンドを挿入したいのですが、
どうしもテーブルにパッケージと表示されてしまいます。
 WAVEサウンドとテーブルに表示するにはどうしたらよいのでしょうか?
ご存知の方よろしくおねがいします。
0276デフォルトの名無しさんNGNG
TransferSpreadsheet
をつかってテーブルの内容をEXCELに書き込みたいんだけど
うまくいかないッス
ファイルだけはできるんだけど中身が無し
もう一度実行するとうまくいく…
出力するセルの位置が決まってるから
OutPutToだとだめなんです…

0277デフォルトの名無しさんNGNG
>>276
DoCmd.OutputTo
を使ってみては?

関係ないんだけど、客先のAccs2000環境下で突然「共有ロック数違反」が出始めた。
とりあえずレジストリいじってJetのロック数を増やして対処したんだけど、NT4.0→Win2000へのパフォーマンスが著しく低下。
いい方法無いかな?
0278デフォルトの名無しさんNGNG
テーブルを開き、直接データを入力する際に
"123 " の様に、文字列の最後に半角空白を追加して保存したいのですが、
"122" と空白が除去された状態で保存されてしまいます。

何か、キー操作などで空白を最後に追加することはできないのでしょうか?

 
0279デフォルトの名無しさんNGNG
>278
 テーブル直接叩いてるんなら無理。不可能。全角スペースなら入るけどな。
テーブルに別セッションで書きこめばオッケーだよ。
 フォームから登録するとか、モジュールで書きこむとかね。

 あるいはそのデータを利用する際に & " " って追加してやれ。普通はこうする
と思うが、冗長なスペースが必要ってこともあるんだろうな。
0280278NGNG
>>279
直接TBLに書き込むと無理なんですね・・・
難しくもないのでコードで書きます。
ありがとうございました
0281デフォルトの名無しさんNGNG
今帳票出力のシステム作ってるんですが、ACCESSのレポート機能では柔軟な表ができそうもないので、
EXCELで罫線等は引き済みのテンプレートを作って、
印刷時にテンプレートをローカルにコピーし、それにデータを貼り付けていくという方法をとっています。

ですが、出力データが数千件とかあった場合、EXCELに出力するのも限界があるのかな。。と考えています。
あとパフォーマンスも落ちるし。
(100件程度でも2分ぐらいかかっています)

みなさんはACCESSのレポート機能で対応できない帳票を出力したいとすると、どんな手法をとりますか?
よければ教えてください。
0282デフォルトの名無しさんNGNG
帳票用ソフト使うってのはだめ?
0283デフォルトの名無しさんNGNG
>>281
柔軟な表って何だ?
ちなみに漏れは、ライン・サークルメソッドをライブラリ化しているから
どんな帳票もラークラク(w
0284281NGNG
>>282
帳票用ソフトなんてあるんですか^^;
全然考えてませんでした。ちょっと調べてみます。
でも買わないといけないのであれば却下されそうだ・・・

>>283
柔軟な表・・そうですね・・格子状の罫線がバリバリな表とか・・・
いわゆる、ACCESSのレポート機能にある
下方向に「ヘッダ・詳細・フッタ」の形式では対応できない表です。
(柔軟、ってのはちょっと表現間違っていたかも^^;)
今やってるのは、横方向に詳細が続くようなものなので、
ACCESSのレポート機能では対応できないのです。
(しかも格子状の罫線つき)

ライン・サークルメソッドをライブラリ化してるとのことですが、
よければ詳しく教えて頂けますか?
最終的にはACCESSのレポートに出力してるんでしょうか?
0285デフォルトの名無しさんNGNG
>>284
ヒントだけ教えてやろう・・・・
四角オブジェクトを貼り付けてその座標を取得
それを元に縦横ループ
0286明日納期NGNG
お願いです、助けて下さい!
モジュール開けようとしたら
「オートメーション エラーです。(Error 440)」
で開かないんです。
復旧できないのでしょうか?
0287デフォルトの名無しさんNGNG
>>286
スデに死んでいる(w
新規mdbにできるものだけインポートしろ

Access97で作ったものならまだ救いはあるが・・・・
0288明日納期NGNG
Access97で作ってます。
もうホント藁にもすがる勢いなんです。
方法があるのならお願いします。教えて下さい。
0289デフォルトの名無しさんNGNG
>>288
そりゃラッキーかも(w

Access2000に変換→97形式に変換
できればそれでよし
モジュールが生きてりゃラッキーだな

うまくいくかどうかは保証はせんがな(w
0290明日納期NGNG
>>289
だ、駄目でした…。
モジュール死んでるようです。
諦めて過去のバックアップから作り直します。
どうもアドバイスありがとう御座いました。
0291281NGNG
>>285
罫線についてはなんとなくわかりました・・・
で、出力するのは、ACCESSのレポートなんですよね?
ちなみに、285さんなら、横方向に詳細部分を出力したいときには、
どのようにしますか?
自分はTEXTコントロールを1ページ分ぎっしりおいて、その名前を元に改行などの制御しようとしたんですが、
ACCESSのレポートはどうやらオブジェクトをおける数に制限があるらしく、
256個(255だったかな?)でエラーになってしまいました。


関係ないですが、世の中には、VBAから(VB?)直にプリンタ制御をして出力を行う
つわものもいるとかいないとか・・・
でもあまり現実的ではないかなぁ。
0292デフォルトの名無しさんNGNG
>>281
>で、出力するのは、ACCESSのレポートなんですよね?
当然だ(w
>自分はTEXTコントロールを1ページ分ぎっしりおいて、その名前を元に改行などの制御しようとしたんですが、
>ACCESSのレポートはどうやらオブジェクトをおける数に制限があるらしく、
>256個(255だったかな?)でエラーになってしまいました。
ちなみに漏れはワーク連結のサブフォームを使う(サブレポートは何故かエラーになる)

頭使えよ・・・

0293281NGNG
>>292
レポートの中にサブフォーム使うんですか・・・
正直あまり使いたくないけど・・・・とりあえずやってみます。

ありがとうございました。

他に案のある方がいらっしゃいましたらら、引き続きお願いします。
0294デフォルトの名無しさんNGNG
>>293
ワードの差込ファイルってのは?
EXCEL入っているんならワードもあるだろうから...
0295デフォルトの名無しさんNGNG
>>281の話題は漏れも激しく興味がある。
幸い漏れはまだ帳票は単票形式の簡単な表しか扱ってないから
ACCESSのレポートでことたりてるが。

たしかに横方向に詳細が伸びたらレポートじゃ無理っぽいなぁ。

目標は、軽く、そしてより柔軟な表を作る方法ッスね。

0296デフォルトの名無しさんNGNG
横方向に詳細がのびるレポートですが、サブレポートで作ったことがあります。
子レポートの「詳細」の「高さ」を一明細分に設定し、ページ設定の「レイアウト」で
「列数」に横に並べる数を設定します。
親レポートのサブレポート部分の高さは、子レポートの詳細の高さと同じにします。
こうすると、複数の詳細が横方向に伸びていきます。
サブレポートの「印刷時拡張」を「はい」にすると、明細が多い時も折り返して印字できます。


0297デフォルトの名無しさんNGNG
フォーム上にグラフがある時、
コマンドボタンでフォームを閉じると二度とそのフォームは開けない。

…俺だけでしょうか?
0298◇ ◆fxGikXRE NGNG
ちょっと教えてください。
みなさんはツリービューを作成するときに何を使ってますか?私はツリービューコントロールを何も考えずに使用して作成したのですが、comctl32などのバージョンが違うとactivXエラーが起きて動きません。
セットアッププログラムを作成すればいいのでしょうが、そうでないやり方があれば、そちらで組替えたいのですが。
何かいいやり方がありましたら教えてください。
0299デフォルトの名無しさんNGNG
>>298
comctl32.dllの単独配布はマズいらしい。
Microsoftが用意しているcomctl32.dll配布のページがあるぞ。

参考文献
http://www.ikehouse.co.jp/mirror/softlib/comctl32.html
0300デフォルトの名無しさんNGNG
300
0301デフォルトの名無しさんNGNG
ちょっと教えてください。
サブフォームから別フォームをOpenし、そのフォームのclose時に
パラメタ(入力されたテキストボックスの値)を渡したいのですが、
[Forms]![親フォーム]![サブフォーム]![テキストボックス]=Me![テキストボックス]
で受けてくれないのですが、何か方法があるでしょうか?
0302デフォルトの名無しさんNGNG
Forms![親フォーム]![サブフォーム].Form![テキストボックス] = Me![テキストボックス]
かな?
0303sageNGNG
>>302
Thx!
Tipsレベルでした
0304デフォルトの名無しさんNGNG
Access で同時接続数増やす方法ってないの?
知ってたらだれか教えて。
0305デフォルトの名無しさんNGNG
>>304
何の接続?
0306デフォルトの名無しさんNGNG
VBAで「ページ設定」イジる方法って無いのかな?
せめて用紙サイズと方向だけでも、ここのレポートで設定したいのだが……
0307デフォルトの名無しさんNGNG
>>306
ヘルプに載ってるよ。
くまなく探せ。
0308デフォルトの名無しさんNGNG
誰か助けてください。お願いします。

ACCESSのVBで、フォーカスがあるレコードだけ
の編集、追加、更新禁止ってどうやればいいんですか?

例えば、あるチェックボックスがオンになったレコードだけ
編集不可とかにしたいんです。
0309読まずにカキコNGNG
>308 レコードを移動した時にカフカを切り替えてやればいーやん
0310デフォルトの名無しさんNGNG
>>309
me.[あるコントロール名].locked = Trueとすると、
フォーム上に出ている全てのレコードの
[あるコントロール名]がロックされてしまいます。
1つのレコードの[あるコントロール名].だけロックしたいのですが、どうすればいいのかわかりません。
0311デフォルトの名無しさんNGNG
>310
それじゃマズイの?
0312デフォルトの名無しさんNGNG
>>311
例えばフォーム上で 
[受注日] [仕入先コード] [納品日] [納品チェック]が1レコードとします
これが何レコードも連続で並んでいるわけですが、そのうち
[納品チェック]がonになっているレコードだけロックしたいんです。
0313読まずにカキコNGNG
>310
だから、レコードを移動した時に呼ばれるイベントプロシージャのなかで、
If me.[チェックボックス].Value Then
 me.[あるコントロール].locked = True
Else
 me.[あるコントロール].locked = False

みたいのでできないかな?
もちろん全レコードがロックの対象なのは変わりないけど、見かけ上1レコードだけ対象。
0314デフォルトの名無しさんNGNG
>>313
すみません、やってみましたができません
0315読まずにカキコNGNG
>314
んなはずねー
ちゃんとForm_Current辺りに書いたか?
0316デフォルトの名無しさんNGNG
>>315
すいませんできました。
ありがとうございます。

欲を言えば、レコード移動時ではなくて、
チェックがオンになったと同時にロックかけれませんか?

[チェックボックス]_AfterUpdate()中でです
0317デフォルトの名無しくんNGNG
>>316
ロックをかけたいコントロールのフォーカス取得後に
書けばいいのではないでしょうか?
0318デフォルトの名無しさんNGNG
>>317
ありがとうございます。さっそくやってみます。
0319デフォルトの名無しさんNGNG
初めまして。某会社でAccessでシステム作ってる者です。
と言っても1週間前から始めたばっかりのド素人ですが(汗

んでVBAに関して基本的な事かもしれませんが質問です。
あるボタンを押すとそれに連動して、
テキストボックスのLocked、BackColorが変更されると言う処理を
ユーザ関数を使って作っているところなのですが(一部省略)、
どうにもうまく反映されずに困っております。

'ボタンを押す
Private Sub cmdAllCanChg_Click()
ToCanChg (tbxName.Name)
End Sub

'ここに飛んで処理する
Private Sub ToCanChg(tgtName As String)
Me.tgtName.Locked = False
Me.tgtName.BackColor = vbWhite
End Sub

ToCanChgで受け取るtgtNameと
cmdAllCanChgで渡しているtbxName.Nameが
テキストボックスのName(変更したいテキストボックス)になるのですが、
これをToCanChgで記述しているようにしても
「メソッドまたはデータ メンバが見つかりません」
とエラーになってしまいます。

自分でも指定の仕方がなんとなく違うのは判るんですが、
この場合どうやって指定すればいいのでしょうか?

ご解答頂ければ幸いです。(´ω`)ノ
0320読まずにカキコNGNG
>319
引数を As Objectにすりゃいいんじゃないか?
0321319NGNG
320さん解答ありがとうございます。
Private Sub ToCanChg(tgtName As Object)
としてみたのですが、やはりエラーになってしまいます。

 実行時エラー'424'
 オブジェクトが必要です。

自分も最初「As Objectか?」と思ったのですが、
どうもこれも違うようで…。
0322読まずにカキコNGNG
>321
あー、言い忘れたけど呼び出し側も.Nameじゃなくてコントロールそのまま渡してね
0323319NGNG
つまり、こう言う事でしょうか?

 'ボタンを押す
 Private Sub cmdAllCanChg_Click()
  ToCanChg (Me.tbxName)
 End Sub

 'ここに飛んで処理する
 Private Sub ToCanChg(tgtName As String)
  Me.tgtName.Locked = False
  Me.tgtName.BackColor = vbWhite
 End Sub

…何故だかToCanChg (Me.tbxName)で
「オブジェクトが必要です」
と返されてしまいます(;´Д`)
(ちゃんとtbxNameは存在します)
0324デフォルトの名無しさんNGNG
'ここに飛んで処理する
Private Sub ToCanChg(tgtName As Object)
 tgtName.Locked = False
 tgtName.BackColor = vbWhite
End Sub

引数は As Object 、 Meは不要
0325デフォルトの名無しさんNGNG
どなたかご存知ならどうか教えてください。

フォームA、フォームBを作成し、Aの中にBをサブフォームとして
組み込みました。
フォームB作成時にはgetFocus等の関数を定義していたのですが、
サブフォームとして組み込む事が原因なのか、
フォームAで開くとサブフォーム(フォームB)の関数が呼ばれません。

フォームBで作成した関数を有効にするためには
どうすればいいのでしょうか?分かりません。
どなたかどうかお教えください。よろしくお願いします。
0326デフォルトの名無しさんNGNG
日付型のコントロールに値が入ってないのをチェックする方法がわかりません

datebox:日付型変数

if datebox.value = Null then
・・・・
end if

これでは駄目なのはわかるのですが、どうすればよいのでしょうか?
どなたかご存知ありませんか・・
0327デフォルトの名無しさんNGNG
>326
ヘルプでIsNull関数をちぇけらっちょ
0328306NGNG
>>307
……うう、見つかりません(T_T) ヒントプリーズ(涙)
0329デフォルトの名無しさんNGNG
>>326
If IsNull(.[datebox]) Then
...
end if
0330307NGNG
>>328
prtDevModeで検索すれば出てくる。
使い方はココに載ってた。
ttp://www.akj.co.jp/aug/qa/ans0001-0050/0340.html
0331デフォルトの名無しさんNGNG
Oracleでいう MINUS ってAccessだとなんなんでせうか?
要は二つのテーブルから重複しないレコードをとりたいんだが・・・

JOINっでくっつけてErrorさばいてもいけそうな気がするんだけど
AccessのSQLってVBA関数との切り分けがよくわからん・・・
0332デフォルトの名無しさんNGNG
319です。
亀レスですが>>324さんありがとうございました。
結局動かなかったので関数での処理は諦めました…。

ですが、未だ平行して原因を調べていこうと思います。

色々とどもでした。(´ω`)ノ
0333デフォルトの名無しさんNGNG
333ゲット!
0334デフォルトの名無しさんNGNG
すんません、自己解決しました。

 'ボタンを押す
 Private Sub cmdAllCanChg_Click()
  Call ToCanChg (tbxName)
 End Sub

 'ここに飛んで処理する
 Private Sub ToCanChg(tgtName As Object)
  tgtName.Locked = False
  tgtName.BackColor = vbWhite
 End Sub

上で呼ぶ場合のCallが抜けていただけのようで…。
Access97では省略出来ないんですね(;´Д`)

失礼致しました。
0335デフォルトの名無しさんNGNG
1.  Call ToCanChg(tbxName)

2.  ToCanChg tbxName

どっとも通るよ。カッコの有無に注目。
ちょっとキモイけどね。
0336334NGNG
>>335さん、本当ですね。
自分的には上の方が関数っぽくていいかなーと。
下は確かにキモイかもw

補足どもっす。
■ このスレッドは過去ログ倉庫に格納されています