Access VBA 質問スレ Part1

■ このスレッドは過去ログ倉庫に格納されています
2012/02/06(月) 22:53:46.88
AccessのVBAに関する質問スレです

★1 質問テンプレ(雛形)は用意しませんが、OSとAccessのバージョンは必ず書きましょう。

★2 AccessのVBA以外の部分に関する質問はNGです。
   但し、VBA無しでも出来ることだが、あえてVBAでやりたいって物に関してはOK。

★3 AccessのVBE(Visual Basic Editor)を使うとしても、VBAの分野以外に関してはスレ違いです。

 VBAとは、『Visual Basic for Application』の略で
  Application
  ├Workbooks
  |└Workbook
  |  ├Worksheets
  |  |└Worksheet
 というApplication以下のオブジェクトを、VB言語で操作するものを指します。
 例えExcel付属のVBE(Visual Basic Editor)を利用しようとも、このApplication以下のブックやシート、
 セルやオブジェクト等を操作するもの以外はVBA分野の話ではないので、ここでは聞かないでください。

★4 レベルはどうあれ、ここはプログラマ用の板スレです。プログラマとは、自分でプログラムを組み、
   コードを書く人の事なので、自分でやるきは全く無く、丸投げしようって人はお断りです。
   ヒントを貰えばあとは自力でなんとかしますって人のみどうぞ。

★5 わからなければとりあえず「マクロの記録」(Alt, T, M, R)

関連スレ
Excel VBA 質問スレ Part23
http://toro.2ch.net/test/read.cgi/tech/1327763113/l50
2015/04/18(土) 03:55:58.31ID:j/wjXDDU
WSH(VBScript, JScript), PowerShell からでも、
呼び出せるよ

Accessはデータベースだから、
Excelよりもデータの整合性は、より安全で、
何々明細とかを扱う、本格的な業務に適している
2015/04/18(土) 07:06:32.83ID:elh8iJrV
>>284
Excel にデータエクスポートして開いてピボット集計して保管してzipにしてメール添付して送信、とかExcelの外から出来る。
2015/04/18(土) 09:55:54.98ID:QuJhi9bL
エクセルの65535行制限って解けたんだっけ?
2015/04/18(土) 18:09:00.24ID:05gN+8sT
xlsxファイルからDAO.RecordSetでデータを取り込んでいます

dim A

Do Until Rs.EOF=True
For i=1 to 10
A=Rs.Fields(i).Value
InsertRS.Addnew
InsertRS.Fields(i).Value=Rs.Filds(i).Value
Next
Rs.MoveNext
Loop


のようにしてエクセルデータからデータベースに保存してます。

で、
A=Rs.Filds(i).Value
は無意味なコードなのですが、
これがないと保存がされません。
ワンクッション?が必要なようなんです。
これ、原因や同じような症状でた人いますか?
2015/04/18(土) 19:59:14.52ID:C1NhVGiv
それ以前にAddnewしてる位置がおかしい気がするんだが
2015/04/18(土) 21:20:04.66ID:05gN+8sT
書き間違えました。
実際は、Forのまえにaddnewしてnextのあとにupdateしてます。
2015/04/19(日) 02:01:53.14ID:WMQbPkw9
書き間違いとか実際のコードじゃないもの出されてもなぁ
お前の勘違いの可能性が圧倒的に高いと思うぞ
2015/04/19(日) 07:19:00.86ID:8d6tresr
事実、
ワンクッションのある無しで発生するんです。
2015/04/19(日) 09:54:27.68ID:S72BOy6b
フィールドが100個くらいあるエクセルデータを同じように取り込んだときに経験したことある
ケド、、、、原因調べないでおわっちゃたなwそーいえばww
原因を探るためにDebug.Print入れたら登録がされるようになって、原因解明より先に仕事・・・・となって、そーいえばそのままww
2015/04/20(月) 08:09:04.77ID:ZV6mzr+5
>>287
ここ、Accessスレですよ。

それとGoogleで調べれば分かるような内容の質問はどこのスレでも
禁止です。頭に叩き込んでおくといいですよ。
2015/05/02(土) 06:47:20.55ID:cQx6YORh
中文(簡体)文字のファイル名をダイアログで取得して、コピーしたり開いたりしたいんですが、"見つかりません"と言うメッセージに。
中文文字の入ったファイル名やフォルダー名を取り扱う方法かヒント頂けないですか。
296デフォルトの名無しさん
垢版 |
2015/05/14(木) 12:50:18.83ID:No/KpZZc
二つ教えてください。

1コンボボックスコントロールの▼が反応しない時がある

2リストボックスコントロールAからデータを取得するとき
A.BoundColumn=1
変数=A.ItemData(A.ListIndex)
A.BoundColumn=2
変数=A.ItemData(A.ListIndex)
A.BoundColumn=3
変数=A.ItemData(A.ListIndex)
A.BoundColumn=4
と一つの関数内で取得する列を変更してデータを取得しようとしても、データが取得できる場合と取得できない場合が発生するのはなぜでしょうか?
297デフォルトの名無しさん
垢版 |
2015/05/16(土) 10:31:05.05ID:s10/F9Sk
Accessって新しくなればなるほど、不安定化してない?
なんとなくだけど
2015/05/16(土) 12:20:26.27ID:mEQOWf9/
>>297
激しく同意
Accessも立ち位置が怪しくなりつつあるのかなって。。。。
今の時代ならForguncyみたいなのがオフィスファミリーのラインナップに
ほしいとこだね。
2015/05/16(土) 14:09:51.76ID:/YqkcKmb
>>297
ど安定だと思ってた。難しい事しないからかもだけど。
300デフォルトの名無しさん
垢版 |
2015/05/16(土) 17:59:47.30ID:s10/F9Sk
/decompileオプションをつけてファイルを開くなんて、昔はなかったのになぁ・・・。
2015/05/16(土) 22:55:57.30ID:xhmYU3Qu
>>297
俺の体感ではすくなくとも2007までは順調に安定化してるけど
それ以降は使ってないから知らん

>>300
/decompileっていつからあるんだろうな
昔は全オブジェクトを別mdbにエクスポートとか結構頻繁にやってた記憶が
302デフォルトの名無しさん
垢版 |
2015/05/17(日) 10:45:41.40ID:vGSHuJcU
>>301
97くらいからはあったはず。
でも/decompileを使うようになったのは2003以降かなぁ?
むかしはmdbファイル丸ごと見事に壊れたから/decompileすら登場の出番が無く
今はVBAを入れるとスグ壊れるから/decompileが効力を発する機会が増えた

うーん・・・改善してるのかもなw
ただ開発をやっている人から見るとVBAをいじってる最中の異常終了が増えた
感じがするから不安定化しているように見えるのかも
303デフォルトの名無しさん
垢版 |
2015/05/22(金) 21:24:51.38ID:zmoBF1Q0
[Forms]![コントロール名]......

のように使う
 !

 フォーム.プロパティ

「!」と「.」
の違いってなんなんでしょうか?
2015/05/22(金) 21:51:36.82ID:yor6OqJo
/decompile 知らなかった。
2015/05/23(土) 12:42:53.54ID:J5W2ethN
俺もだよ

>>303
それも知らないねぇ。
ただ、外部モジュールから参照するときは ! でないとダメなんじゃなかったかな。違ったかもしれん。
2015/05/23(土) 12:45:03.86ID:J5W2ethN
モジュールって何やねん
オブジェクトやオブジェクト
307デフォルトの名無しさん
垢版 |
2015/05/23(土) 12:50:24.50ID:VCG+Khsg
外部オブジェクト用なんだ、、、
知らなんだ
2015/05/23(土) 13:54:06.28ID:8oQ8jNeY
!はコレクションの要素を指定するときに使う
.はオブジェクトのプロパティ(メンバ)を指定するときに使う
2015/05/27(水) 08:05:22.83ID:lvaBWQ33
>>308
コレクションの要素の意味が分からん。
2015/05/27(水) 14:12:01.89ID:5bPXfDHX
>>309
コレクションの意味がわからんのか?
要素の意味がわからんのか?

簡単に言えば、複数のうちのどれか ってことだが
何が複数なのかは!の前のやつによって違う

Formsはまさにフォームのコレクション
個別のフォームならControlsが既定コレクション
レコードセットだとフィールドが既定のコレクション
2015/05/27(水) 21:13:26.76ID:GAmiGWam
これっくしょんのっ♪ おべんっとばっこにっ♪
2015/05/27(水) 22:22:21.63ID:ZDZjEVN6
書く人の好みもありますかね
私はなるべく「!」ではなく「.」を使ってます
2015/05/27(水) 22:54:50.76ID:XhKCRfpS
「!」を「.」では動かないでしょ?
2015/05/27(水) 22:59:28.17ID:ZDZjEVN6
対応したプロパティに書き換えて使ってます
2015/05/27(水) 23:07:04.59ID:XhKCRfpS
ふ〜ん、そうなの
(どゆことかわかってないが)
2015/05/28(木) 10:07:42.72ID:/8nOg4qQ
クラスのメソッドと
オブジェクトのメンバの違いっしょ
2015/05/28(木) 11:27:33.59ID:fu7GUEC6
>>316
同じ事を言ってるようにしか見えんが
クラスとオブジェクトはどういう意味で使い分けてるんだ?
メソッドとメンバはどういう意味で使い分けてるんだ?
2015/05/28(木) 13:25:09.01ID:/8nOg4qQ
馬鹿には無理
2015/05/28(木) 18:22:57.95ID:C/2xaBAg
>>315
a = [Forms]![f2]![combobox1].Value
a = Forms("f2").Controls("combobox1").Value

他フォームの値を利用する場合等は、こんな感じで書いてます
個人的にコレクション名が入った方が分かり易いのでこうしています
どちらの書き方が良いとか悪い、というのは無いので書く人次第ですね
2015/05/28(木) 21:06:14.54ID:bDSn3nA4
ほほう、勉強になります。
2015/05/29(金) 05:39:51.54ID:QOrEbIFI
後者の方がメタプログラミングへの可能性が感じられて良いね
322 【豚】
垢版 |
2015/06/01(月) 08:08:03.93ID:SmEysG22
びっくりおみくじ
2015/06/08(月) 08:55:28.30ID:0Vy1Z1yY
>>319
つまりどちらの書き方でも
同じ値が取得出来る
2015/06/11(木) 14:05:13.01ID:cKv7S2xh
フォーム内のテキストボックスで教えてください。

テキストボックスに値を入れるために選択すると、0が表示されます。
空白の状態から値を入力できるようにするには、どこの設定を変えれば良いのでしょう?
2015/06/11(木) 14:06:45.16ID:cKv7S2xh
>>324は非連結のテキストボックスの場合です。
2015/06/11(木) 14:16:53.77ID:cKv7S2xh
>>324は解決しました。
フォームオープン時にVBAで0を設定していました。
他人のソースだったので気がつきませんでした。

スレ汚し失礼いたしました。
327!omikuji
垢版 |
2015/06/24(水) 19:15:19.74ID:QTgmX67K
>>319
クエリの抽出条件に書いてみた。
コレクション(index)の書き方ではダメだった。
2015/06/25(木) 03:15:52.99ID:pZAotZeg
>>327
そりゃVBAの構文をクエリに書いても無理でしょうに
2015/06/25(木) 05:46:02.39ID:0DqbKMKe
>>328
そうなのですか、ビルダーで作成される以外の記述を試したかったのです。
330デフォルトの名無しさん
垢版 |
2015/06/25(木) 07:48:35.30ID:tqVIvEYY
お試しで書いたプログラムを納品されたクライアントがかわいそう
2015/07/01(水) 22:29:02.00ID:r6P8NuLo
>>330←納品だの客だの何言ってんのこのバカ?
2015/07/02(木) 09:39:28.85ID:CcSdJJgr
>>331
Accessでしょっぱい商売やってる、自営業のプログラマなんだろww
ハッキリ言って取るに足らない存在。
2015/07/02(木) 15:10:49.63ID:2kk3aD1Z
ツボったω
2015/07/02(木) 21:31:36.86ID:UqhUXHzI
俺もしょっぱい2号
2015/07/17(金) 07:28:53.29ID:6H2NxaAj
プロジェクトのテーブルに
プロジェクト番号、
作業内容Aの担当者、
作業内容Bの担当者、
作業内容Cの担当者と入力するテーブルがあり、
それとは別に工数入力テーブルで、
各担当者毎にプロジェクトに対しての作業工数を付けたいのですが
どのようなリレーションシップの関係を持たせれば良いでしょうか?
2015/07/17(金) 12:20:42.38ID:7dLfVbOx
>>335
リレーションって、工数入力テーブルのテーブルレイアウト決まってるのか?
まあ、プロジェクト番号と担当者で参照するだけなんだけど

そのプロジェクトのテーブル含めて、DB設計もうちょっとちゃんと勉強した方が良いんじゃね
337デフォルトの名無しさん
垢版 |
2015/07/27(月) 17:54:56.83ID:cZFieeEU
VBAのソースが開けなくなる現象ってどうしたらいいの?

decompileつけても治らない

新しいファイル作ってインポートもダメ
2015/07/27(月) 20:40:40.78ID:n6WPrg6a
押してもダメなら・・・
2015/07/27(月) 20:59:07.74ID:LaMoSGUn
>>337
数年に一回、私もそんな目にあいます。
だいたい復旧出来ないので、バックアップ欠かさずとってます。
どうにかなるなら私も知りたいですが。
340デフォルトの名無しさん
垢版 |
2015/07/27(月) 21:30:17.92ID:FqSPmPlY
やっぱみんな同じ現象に悩まされてるんだね

ネットワーク共有フォルダ上だと起きやすい

ネットワーク共有フォルダ使わなきゃいいんだけど、うちの情シスが変な縛りかけるからコレしか手がないし
2015/07/27(月) 23:01:15.51ID:vqEIRiU+
ソースコードは、単なるテキストデータだろ?

それが開けないのは、
そのデバイスがバックアップ・メンテナンス中などで、
ロックされているのかも
2015/07/28(火) 01:08:06.50ID:/CfsPtPn
壊している方は
ネットワーク上で直接開いたり
mdbをフロントとDBに別けなかったり
ほとんど同じパターンですよね

>>341
Accessを使われていない方とお見かけしました
mdbが破損するとソースも壊れる事があります
2015/08/01(土) 02:11:12.48ID:Gxa4R9yG
Access2010利用

Access起動時の「コンテンツを有効化にする」を押下した直後に、関数を実行する方法はあるのでしょうか?

現在は「AutoExec」マクロから「プロシージャの実行」を行い、対象の関数を実行させていますが、Access起動時の「コンテンツを有効化にする」を押下する前にマクロが実行され、プロシージャが実行出来ない旨のエラーメッセージが表示されてしまいます。

ExcelのAuto_Open関数は「コンテンツを有効化にする」押下後に、処理が始まっていたので、それをAccessでそれを実現したいと思っています。

処理内容は「Accessウィンドウの不可視化
」「メニューバーの不可視化」「対象のフォームを開く」です。

どうかご教授をお願いいたします。
2015/08/01(土) 05:30:07.04ID:fplyMpww
>>343
>処理内容は「Accessウィンドウの不可視化
>」「メニューバーの不可視化」「対象のフォームを開く」です。
それ全部マクロなしで設定でできる気がするけど

スタートアップ用のフォーム作って起動時指定して、そのフォームのプロシジャで設定してやれば良いんじゃね
2015/08/01(土) 23:31:54.27ID:Gxa4R9yG
>>344
ありがとうございます
確かにマクロを使用せずに設定出来ました
更にFormLoadを利用したところ「コンテンツを有効化にする」押下後に動作しました

今まで業務ではExcelばかり利用していましたので、Accessのオプションの多さ、分かりづらさ(自身の無知に起因する事が多いですが…)に戸惑っています
Accessを使いこなせる人は本当にすごいと思いました
2015/08/02(日) 05:14:22.27ID:ZRhH79SV
ExcelのVBAはExcelというアプリケーションを操作するためのものだけど
AccessのVBAはAccessを使ってアプリケーションを作成するためのものだからな
2015/08/02(日) 08:10:22.71ID:u4JV0/NP
2行目”〜Accessというデータベースを操作する〜”のほうが名言ぽくなりませんか
(添削ではありません。提案です)
2015/08/02(日) 08:29:50.19ID:dTRZmQiN
>>347
そうは全く思わない
VBAはデータベース操作のためのものではない
あくまでアプリ作成のためのもの
2015/08/02(日) 11:40:56.13ID:GsLj6RLA
>>348
確かにExcelとは違って、アプリケーションを作っている感覚が非常に強いですね
Access感を感じさせないUIにする事も簡単でしたら
そのせいで、フォームのUIを美しくする為に時間がかかってしまいますw
2015/08/02(日) 11:42:54.62ID:GsLj6RLA
×:Access感を感じさせないUIにする事も簡単でしたら

○:Access感を感じさせないUIにする事も簡単でした
2015/08/02(日) 11:55:46.07ID:LbLYBwwY
データベースの操作もお手軽に出来て便利。
アプリ開発環境としてはどうなの?
私は零細企業の社内システム開発用として便利に使わせて頂いてます。
2015/08/02(日) 12:37:07.35ID:Uy/1MbzZ
両者のVBAはデフォルトの参照設定が違うだけですよ
VBA以外は言われている通りAccessの方がはるかに強力ですね
Excelはユーザーフォームくらいです

特殊なレポート印刷なんかは無理してAccessでゴリゴリ書くより
Excelで書式作ってAccessから流した込んだ方が楽だし
データ操作ならAccessじゃないとキツイし
それぞれ得意分野はありますよね
2015/08/02(日) 21:08:18.97ID:AR+WC9yM
今更だが >>343 はセキュリティの設定だけで回避できるんじゃ?
そもそもその「コンテンツを・・」が出ないようにすることのほうが重要なんでは?
2015/08/02(日) 22:38:28.30ID:ZRhH79SV
>>353
それはアプリケーション側ではなんとも出来ないので
2015/08/02(日) 23:04:31.90ID:AR+WC9yM
は?  Access2010利用って書いてあるだろ? たとえそれがRuntimeだとしても
ロケーションを信頼するとかで可能だろ? 不特定多数に配布するケースでも
インストーラを調整することで「なんとも出来ない」は回避するものだろ?
毎回「コンテンツを・・」を表示させるほうがどうかしてるぞ?  そんなの誰が信用してくれるんだ?
2015/08/03(月) 11:17:43.06ID:2bNGPX4C
あれ?コンテンツ〜の話って
「プライベート ネットワーク上にある信頼できる場所を許可する] チェック ボックスをオンにして回避するって話ですか?
2010だと↑をオンにしてないと変な場所では最適化も出来なかったような
2015/08/03(月) 13:29:01.86ID:cMN9HbGV
>>355
アプリケーションが自分自身の信頼性を操作するのか
そんなアプリこそ信用できんわ

>>356
べつにネットワーク上に限った話ではないと思うが
2015/08/03(月) 16:54:08.69ID:CU261QGz
を? MSが推奨してんのに信用できねえ てか  Accessは使ってやるけどMSの言うことは聞く耳持たねてか 偏ってるな
2015/08/03(月) 19:02:41.55ID:cMN9HbGV
>>358
MSが何を推奨してるのかしらんが
アプリケーションの意味が通じてないのかね
アプリケーションを.ACCDB(.MDBでも.ACCDEでも良いけど)に置き換えて考えてみ
2015/08/03(月) 20:41:54.56ID:CU261QGz
その域じゃ無いことが判ったからいいよw その域じゃない奴に諭される謂れわ無いわw
いくつかのキー・ワードで「あぁ、あのことか」って気付けないならこれ以上は時間の無駄  おまえの言うとおりでいいよw
そもそもここはAccessの板だし、おれはAccessの話をしてるんだ アプリケーションのアの字も使って無ぇw

よしんばAccessで作られた業務パッケージをアプリと呼びたいなら呼べばいいが、その業務アプリを動作させるうえで
発生するセキュアに関するメッセージはAccessの基本機能で回避できる って云ってるんだ
それを「信用できねえ」っつーんなら使わなくていいんじゃね? 世の中にはごまんと同様の機能を備えたアプリケーションが存在するだろ
Accessに拘る理由なんざこれっぱかしも無ぇだろ 俺の文章のどれがおまえの琴線に触れたか知ったこっちゃ無いが 「ごめんな」
361デフォルトの名無しさん
垢版 |
2015/08/03(月) 21:08:56.51ID:Mp/3eH1E
逆鱗(ぎゃくりん)
2015/08/03(月) 22:23:38.07ID:C0QRYaFQ
runtime 2010(2013も同じ)の起動時のセキュリティ警告を出ないようにする
http://www.mkkobo.com/runtime/runtime04.htm
2015/08/04(火) 03:50:55.73ID:Kz/6+HRH
>>343で質問した者です
細かい利用環境等を書いてなかった事で迷惑をかけました
ごめんなさい

会社独自で開発したと思われる共有サーバシステム上に、accdbを置いて利用者は「読み取り専用」で利用します。(accdeは共有サーバ上では起動できません。)

なので、Access内で設定出来るオプション以外は全く自由がきかず、共有サーバ上でaccdbを開くと必ず「コンテンツを有効化にする」ボタンが表示されてしまうのです

今回の問題自体は、FormLoad関数をExcelで言うAutoOpen代わりに使う事で解決出来たと思っています

しかしAccessって、Web上で資料を探すにしても、資料が豊富なExeclVBAに比べてAccessVBAは資料が少なく、更にバージョンによって仕様が大きく変わるので大変ですね

このスレのやり取りを見ているだけで非常に勉強になります
ありがとうございます
2015/08/04(火) 04:09:40.86ID:JacjvlNa
>>363
ファイル共有のプロトコルとかによって制約あるかもしれんが
共有フォルダを信頼できる場所に追加する事は可能だぞ

ただ信頼されてないaccdb(のVBA)から、信頼できる場所を設定とか出来ないし
そんなことができたら信頼できる場所の意味がないからな
2015/08/05(水) 15:51:27.89ID:dmHYZv4f
利用環境:Access2010、Win7
現在、国内の物件情報をテーブルに入力して、出力フォームで参照出来るようにしています
テーブルのフィールドは「物件No(主キー)」「物件名」「県」「市」「区」「町」「番地」「物件情報」です

新しいレコードが増えた場合は、入力フォームから、データを入力出来るようにしようと思っています

ここでお聞きしたいのは、入力フォームで新しいレコードを登録しようとした際の「重複チェックの方法」です
物件名は、入手先の情報や、入力者の考えによって
様々な表記ゆれが生じます(例:2棟 二棟 A棟 U棟)
入力規則を設ける事によってある程度は回避できると思いますが、
回避が難しいケース(例:ライオンズマンション Lionsマンション Lion'sMansion)の場合は
みなさんはどうやって重複チェックを行っているのでしょうか?

自身で考えた所では、入力フォームで新たなレコードを登録する際に、
似ている物件名があった場合は、お互いのレコードで「県」「市」「区」「町」の重複チェックを行い、最終的にユーザーに「似ている物件がありますが、これとは別の物件ですか?」と警告を出そうと思っています
そうする場合は、「フリガナ」フィールドを追加する必要があると思っています

しかし、もっとスマートな方法があるのではないかと思い、ここで質問させていただきました
よろしくお願いします
2015/08/05(水) 16:57:05.93ID:Bc8ICzH9
>>365
挙げられてますが、半角数字のみなど番地の入力制限は必須でしょうね
物件名のフリガナで番地違いもチェックされるみたいですし
十分スマートだと思いますよ

自分だったら番地まで一致した時にアラート出しますね
残りは住所or物件名でソートした物件リストに丸投げしちゃいます
2015/08/05(水) 17:07:34.90ID:URaglvwf
>>365
月1くらいで住所は同じ、物件名が違うの重複チェックを動かしてリストに出すような運用にするとか。
難しいことをら考えずに済む。
2015/08/05(水) 17:23:47.23ID:ndgPjsPh
なんで郵便番号のフィールドがないのか不思議
2015/08/05(水) 22:00:34.14ID:VP6wM0Pb
時代はすでに二十一世紀なんだよ いまさらフリガナでもあるまい
フィールドひとつ追加 lat,lng 緯度・経度 43.386338,144.008751 下六桁あたりで固定すれば
間違いようも無いだろ 不動産業界に身を置きながらなんでそんなことにも気付かない
マップアプリに上の数字コピペしてみりゃ、世界中の誰だって間違いようも無い

なに? じゃあ緯度・経度どうやって調べるだと? そのぐらいじぶんで調べろ 長押しするだけだ
まぁ、ゆえに危険が危ないがな  便利って物はとてつもなく不便なものにも等しいんだ 覚悟して使え

雌阿寒岳山頂が出るはずなんですけど、違う位置を示すマップアプリ有ったら教えてください 使用禁止にしますので
2015/08/05(水) 22:40:26.46ID:yfcMdSNW
まあ、ACCESSもVBAも全く関係ない話なんだが
最終的には人間が検査しないとどうしようもないんだろうなと思う
市区町村番地あたりまではルール決めて、そこまで一致なら警告でいいんじゃね
2015/08/06(木) 01:30:34.87ID:f5x8JVe4
すみません、郵便番号のフィールドもあります。入力し忘れていました

・1.レコード入力時に、住所関連のフィールドを利用して重複チェックを行い、ヒットした場合は警告を出す
・2.定期的にテーブル内のレコードの重複チェックをする
・3.物件の座標を利用して重複チェックをする

上記3つの案をいただいたと思いますので
1と2を組み合わせて運用したいと考えます

3の案>>369は、完全に自身の頭に無かったアイデアなので驚きました
入力者の稼働を考えて、負担にならなければ導入してみようと思います

たくさんのレスをいただき、心から感謝致します
受けた恩を忘れず、このスレに来た別の質問者の力になれるよう精進します
2015/08/06(木) 09:14:11.16ID:/XuT1ECN
警告出すとかVB脳的にダサいから
郵便番号入力してヒットしたらリストボックスに表示させて
番地を半角か全角縛りにしてヒットしたらリストボックスに表示させる
リストボックスが件数ゼロなら新規入力ボタンをイナーブル
あぁ俺それ作りたい
2015/08/07(金) 12:16:55.68ID:TsVm0Bt4
人名・地名、固有名詞系はなあ 特殊と考えたほうが無難だからな  例えば・・
吾妻 という人名のふりがなを ある人は「あづま」と入れ別の人は「あずま」と入れてしまったり
じつは「あがつま」と読みます だったり
3-11-22 という地番を三丁目11番22号 三丁目11-22だの、 宛名印刷に合わせて三丁目十一番二十二号としていたり・・
それが結構な確率で頻出するのだからやっかい

それらを一律の規律で縛るのはあまりクレバーとは言えない時代になってるような
鱸 が読めないゆとりのためには「ふりがな」が必要 ってのなら意義あるだろうけど  まあ、おれだけど
2015/08/11(火) 19:16:37.92ID:FwE103qy
フォームでFilter関数使おうと思ったら
IntelliSenseが効かなくて
無理に使おうとしてもエラーで使えず
???と思ったら
Filterプロパティとバッティングしてた。
VBA.Filterで解決したんだけど
プロパティの値ってオブジェクト変数無しでもアクセスできるのな。
2015/08/11(火) 23:34:57.56ID:AWvgSxoB
>>374
フォームモジュールでそのフォームのプロパティならな
2015/08/12(水) 14:59:32.42ID:G2C7HV6B
皆様、すみません

フォームAに入力されているテキストボックスAの値(数値)を、
フォームB(データ登録用)を開いた際に自動的にテキストボックスBに入力させないのですが、どうしてもわかりません

openform 〜 , , , , acformadd で記述しています

教えていただけないでしょうか
2015/08/12(水) 15:32:18.52ID:Q+lcejU0
>>376
自動入力「させない」になってますが「させたい」って事ですよね?

Form_Load もしくは Form_Open イベントに
Me.テキストボックスB.Value = [Forms]![フォームB]![テキストボックスA].Value
もしくは >>319 みたいに
Me.テキストボックスB.Value = Forms("フォームB").Controls("テキストボックスA").Value

Load、Openどちらでも動くと思いますが、適した方を使ってください
コレクションに関しても好きな方を使ってください
2015/08/12(水) 16:26:57.95ID:G2C7HV6B
>>377

あっさりとできました
ありがとうございました

たしかにformのイベントでやるべきでしたね、思い付かなかったです
勉強になりました
2015/08/12(水) 18:38:30.96ID:6lFy7xXj
>>376
単純に
DoCmd.OpenForm "フォームB", , , , acFormAdd
Forms!フォームB!テキストボックスB.Value = Forms!フォームA!テキストボックスA.Value
で出来ると思うけど?
2015/08/17(月) 21:45:03.07ID:7VERYxcQ
今使っているACCESSデータをPC3台で共有しようと思っています。

その場合、テーブルをサーバーPcに、フォームとクエリをクライアントPCに入れて使うと良いとのことでした。

ただいま、フォームを非連結にして、ADOでの追加や更新ができるように変更中です。

質問ですが、
すべてのフォームを非連結にするべきなのでしょうか?
データの追加更新のない、閲覧専用のフォームをネットワークトラフィックを考えて変更すべきでしょうか?

また、分割したテーブルのあるACCESSデータをNASに入れようかとも思っているのですが、PCの場合と動作に違いはでますか?(ここは単にスペックの問題でしょうか?)

どうかお時間のあるかた、教えていただけないでしょうか。
2015/08/18(火) 01:04:22.51ID:l45kMI9F
テーブルを外部からリンクすれば連結でいける
2015/08/18(火) 06:18:28.72ID:KaSAZPht
>>380
テーブルだけのファイルをネット上の共有フォルダに置いて、それのリンクテーブルとその他のオブジェクトが入ったファイルを配布して使うだけ。
フォームの作り直しはしなくて良いと思います。
2015/08/18(火) 19:55:28.61ID:LTr8/sln
>>381
>>382

ありがとうございます

今まで作ったフォームをすべて非連結にするのは難しそうなので追加更新するフォームだけにしようと思います。
384デフォルトの名無しさん
垢版 |
2015/09/02(水) 22:58:44.74ID:U41rngxq
>>382
その他のオブジェクトの入ったファイルは複数人で開いても問題ないのでしょうか?
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況