[過去ログ] Access VBA 質問スレ Part1 (1002レス)
上下前次1-新
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
773: 2017/07/21(金)16:32 ID:28Rvh+yS(2/4) AAS
この現象を何なのか教えてほしい
774(1): 2017/07/21(金)17:16 ID:PYWMukgm(1) AAS
表示した後でも数字が勝手に増えるってこと?
775: 2017/07/21(金)17:49 ID:28Rvh+yS(3/4) AAS
>>774
いや、クエリのSQLをorderby句を書かなかったとき、全件検索する前に検索結果画面が開く
776: 2017/07/21(金)17:55 ID:28Rvh+yS(4/4) AAS
?orderby書いてクエリを実行する→1/2500みたいに結果件数がでる
?orderby書かないでクエリを実行する→1 結果件数が上記と違いでない
▷|このボタンおすと上記と同じように1/2500となる
?の実行時間10秒
?の実行時間1秒 ただし▷|ボタン押すと10秒くらいかかる
777(1): 2017/07/21(金)21:47 ID:GPYD2Qke(1) AAS
なんかオプションに無かったかな。最初の表示するぶんだけ読み込んでとりあえず見せておいて裏で続きを読むって機能をオンに、みたいな。
778: 2017/07/24(月)04:02 ID:UL92A3MD(1) AAS
>>777
あれば教えてほしいですね
779: 2017/07/24(月)15:06 ID:BdqEvISL(1) AAS
あった気がする
780: 2017/07/25(火)22:56 ID:EiidKUEl(1) AAS
会社テーブル
id 会社名 ・・・
1. A社
2. B社
3. C社
4. B社
職員テーブル
省10
781(1): 2017/07/26(水)07:07 ID:wP3Z6w42(1) AAS
AA省
782: 2017/07/26(水)07:12 ID:XR9PfPcp(1) AAS
その会社マスターがおかしいのを放置するのか修正するのかで違ってくるよね
783: 2017/07/26(水)16:42 ID:Pvb1ow9Q(1) AAS
合併したんかね
784(1): 2017/07/27(木)20:31 ID:6NlFfxVd(1) AAS
>>781
なるほど
重複クエリに各会社の最小IDを連結して名寄せテーブルを作成し
JOINしてUPDATEしました
名寄せテーブルを作成しないでクエリだけでUPDATEまでもっていくのは
この場合駄目なんですね はじめ理解できず悩みました
>>784
省3
785: 2017/07/27(木)20:40 ID:DKmshiqQ(1) AAS
なあんだ、Excelの段階で調整しちゃえば余計な苦労しなくて済んだのに
786(1): 2017/08/01(火)21:53 ID:FQn2qD+M(1) AAS
初心者なんで教えて欲しいんだけど、フォームの次へボタン押した時に次のレコードが
表示されないのだがどうしたらいいか教えて欲しい。バージョンは2013
Private Sub Form_Load()
Dim db As DAO.Database
Dim rs As DAO.Recordset
Set db = CurrentDb()
Set rs = db.OpenRecordset("名簿テーブル",dbOpenTable)
省6
787(1): 2017/08/01(火)22:21 ID:16hy4odR(1) AAS
フォームのソースが名簿テーブルならフォーム読み込み時の名前とよみがなセットするコードは無くても先頭レコードが表示される。
フォームのソースを確認しましょう。
非連結フォームならボタン押した時に次のレコードを読み込んで名前とよみがなセットするコードが必要だけど、キーが不明なので何ともアドバイスできません。
長々と書いたがわかりにくいね、すまん。
788: 2017/08/02(水)22:57 ID:GleVclNw(1) AAS
>>787
ありがと
789: 2017/08/28(月)11:23 ID:XLKoN0Ik(1) AAS
神さま教えてください。
ADODB.Commandでのインサートが失敗しても
エラーが出ないのですが、エラーハンドリングの
方法を教えてください。
よろしくお願いします。
790: 2017/08/28(月)21:14 ID:6Oo2q0tu(1) AAS
on error
791: 2017/08/29(火)08:37 ID:SOL0jppX(1) AAS
むしろonerrorしかないと思うが、他にやり方あんの?
792: 2017/08/29(火)09:14 ID:WIE1SoZ9(1) AAS
レスありがとうございます。
ON ERROR は当然やってまして
その上での質問です。
793: 2017/08/29(火)21:25 ID:BqQa7G9t(1) AAS
失敗ってなんだ。
戻り値を取ればAffectedRowsになってるだろうから
それで判断するか追加されたはずの行数をあらためSELECTするとか
794: 2017/11/15(水)11:14 ID:PQCfnSyv(1) AAS
>>786
そのコードはFormがLoadされた時に名簿テーブルを開いてRecordsetに格納し、名前とカナをテキストボックスに入れるというものと次へボタンを押した時にFormがLoadされた時の処理とは全く関係なく次のレコ−ドに移動するもの。
ところで次へボタンでの次のレコ−ドってのは何のデ−タなんだい?
改めて言うけどFormがLoadされた時の処理なんて知らないからとAccess君は言っている。
要は、DoCmd.GotoRecordってのはデータとオブジェクトが連結されていることが想定されていて、連結されているから既にオブジェクトにレコードが表示されているわけだが、それに対して次のレコ−ドと言ってる。
一方、FormのLoad時の処理は連結関係無くデ−タを自ら取ってくるもの。
こちらのやり方を取るならRecordsetをPublic変数にするかForm内でのPrivate変数として保持しておき、他のイベント(次へボタンクリックのような)で使いまわすというやり方になる。
795: 2017/11/22(水)10:10 ID:as8vu/t7(1/6) AAS
整数型、重複なしの列を書き換えるときはどうしてますか?たとえば、
2 1
3 → 2
1 3
にしたいときに2→1の時点でエラーが出ると思うので回避策を検討しています。
一時的に重複なしを解除して、終了時点で重複なしへ戻す方法や、一旦一時的に重複しない数字に書き換えて、それから再度書き換えるべきか悩んでいます。
なにか一般的な方法はございますか?
796: 2017/11/22(水)10:11 ID:as8vu/t7(2/6) AAS
あれ、スペースがおかしくなっている。
列を書き直すときにたとえば
2→1
3→2
1→3
としたいのです。具体的にはidを振り直す作業です。
797(1): 2017/11/22(水)12:23 ID:TDbCG25M(1) AAS
レンジのソートでよくね?
もしくはフィルタ付けて並び替えてからフィルタ解除とか
798(1): 2017/11/22(水)12:27 ID:taN4cymO(1) AAS
idには触らないで、整数型のフィールドを追加します。そのフィールドでやりたい放題やります。
799(1): あ 2017/11/22(水)12:46 ID:MjBhGus4(1) AAS
どうしてもやりたけりゃ、swapしていきゃいいんじゃないの?
最初は2→1にしたいから、
1 3 2に。
次は3を2にして
1 2 3
に。
入れ替え自体は、UPDATE xxx SET unique = CASE WNEN unique=1 THEN 2 WHEN unique=2 THEN 1 ELSE unique END
省2
800(1): 2017/11/22(水)13:21 ID:as8vu/t7(3/6) AAS
>>797
済みません。AccessにもRangeというのがあるのですか?あと、フィルターの使い方も御教示をお願い致します。
>>798
それが、当該idを参照しているテーブルが20個以上あるので、別のコラムという訳にはいかないのです。
参照先を変更するとなるとクエリやらVBAのコードやらを書き換えないといけないので大変だと思います。
>>799
バブルソートみたいなものですね。レコード数が3万ありますので、何となく時間がかかりそうな気がしますが、試してみます。
省3
801(1): 2017/11/22(水)15:00 ID:t4MJ2LxN(1) AAS
その列自体を書き換えちゃうの?
じゃあ、今入ってる値は必要無いってこと?
だったら削除して連番振り直したら?
802: 2017/11/22(水)15:02 ID:TZAtmSaI(1) AAS
今の時代なにが楽しくてAccessなんてやるんだ
803(1): 2017/11/22(水)15:50 ID:as8vu/t7(4/6) AAS
>>801
idだから主キーです。Nullは不可だと思います。
804: あ 2017/11/22(水)16:48 ID:QspO8Ati(1/2) AAS
>>800
もう組み合わせがわかってて、ほんとに単発で1回きりなら、
エクセルで対比表作って、CASEの列とWHENの列足してコピペでクエリ作っても良いけど、全く健全な保守ではない。
2 1
3 2
1 3
に列追加してオートフィルで
省8
805(1): 2017/11/22(水)16:57 ID:QHiNhW2y(1/2) AAS
>>803
方法はいくらでもあると思うけど。
Field追加して連番を振って、追加したFieldを主キーに変更して元の主キーのFieldを削除するとか。
試してないからできるか分からんけど。
そんなことせずに振りなおすならOrderByでId順にして小さい値から振りなおしたら?
806(1): 2017/11/22(水)16:59 ID:QHiNhW2y(2/2) AAS
ただ、主キーを振りなおす意味が分からない。
そういうもんじゃ無いと思うし、テーブルの連結によっては滅茶苦茶になるのは分かってるよね。
807: あ 2017/11/22(水)17:57 ID:QspO8Ati(2/2) AAS
主キー振り直すのは、やむを得ずやるのはそのアプリのライフタイムに何発かあると思う。
業務系だと、「スキーマ変えるな」「デカいトランザクションはるな」「一時テーブルすら作るな」とか無茶苦茶言いよることもある。
でも、しょっちゅうやるならホントに設計考えたほうが良い。
808(1): 2017/11/22(水)18:29 ID:2YVJuPMl(1) AAS
別に列作ってそっち主キーにすれば?
809: 2017/11/22(水)23:10 ID:as8vu/t7(5/6) AAS
>>805
>>そんなことせずに振りなおすならOrderByでId順にして小さい値から振りなおしたら?
そんなことが出来るのですか?DAOもADOも1行ずつしかupdate出来ないから、重複データーが発生してしまって出来ないのですが…
>>806
ワークテーブルまで含めて数えなおしたら、35個のテーブルで件のidを使用していました。なので35個のテーブルに対して変更を行わないといけませんね。
810: 2017/11/22(水)23:11 ID:as8vu/t7(6/6) AAS
>>808
それで解決するなら簡単ですね。やってみたいですね。
元の列の属性がすべて引き継がれるならいいですね。試してみます。
811: 2017/11/23(木)09:57 ID:wkO+ZdSN(1) AAS
主キーの役割はレコードをユニークにすることだろ
並べ替えが必要ならそのための項目を別に用意するわ
作業量を問題にしてるけど
無茶な運用は後に響くよ
分かり易さを優先すべきだと思うわ
812: 2017/11/24(金)12:10 ID:fRZqdK5G(1/2) AAS
主キーを解除して、重複可にして連番を書き込みました。その後に元に戻しました。変更前後の番号を配列に書き込んでおいて、その配列の値から関連するテーブル全部において置換作業を行うことにしました。
idが2万5000レコード、関連するテーブルのレコードが全部で100万近いのですが、2万5000の置換を100万レコードに対して行うので時間がかかりそうな気がしています。どのくらい時間がかかるのか計算する方法がありますかね?
813: 2017/11/24(金)12:21 ID:Q2HEJk5l(1) AAS
accessにSQLコストを計算する機能はないよ
814: 2017/11/24(金)19:17 ID:fRZqdK5G(2/2) AAS
主キーの削除をVBAでやろうとしているんだけど、メソッドが見つからない。SQLでやるしかないのかな?
下を読むとdeleteメソッドはダメみたいだし。
外部リンク[aspx]:msdn.microsoft.com
>>Deleteメソッドは、インデックスオブジェクトが新しいと、データベースに追加されていない場合にのみサポートします。
815: 2017/11/25(土)10:30 ID:eU9hnSW+(1) AAS
無理矢理面倒臭い事をしているようにしか思えない
まぁ人の話を聞く気が無いみたいだし
好きに調べてやればええよ
816(1): 2017/11/27(月)17:21 ID:twASlFZz(1) AAS
SQLであっさり出来たわ。後は置換をどうするかだな。関連するテーブル全部を置換できればすべて解決するけど、何を使うかだな。
SQLは遅いんだっけ?レコードセットでループ回す方が速いと読んだ気がする。
817: 2017/11/27(月)22:26 ID:HF1f2kGW(1) AAS
>>816
普通に考えればSQLの方が速いに決まってると思ってたが。
遅いとしたらその文書いた奴が悪いという印象。
ま、DB系については大したレベルにないから俺が間違ってるかも。
818(1): 2017/11/28(火)05:38 ID:GeGdCCsE(1/4) AAS
業務用ソフトのテーブルを眺めていたら、テキスト型のフィールドがあって、256桁の数字が羅列してあった
様々な設定を指定された桁に格納しているようですが、このようなデーター保存方法は一般的なんでしょうか?
他の言語でもあるのでしょうか?
819: 2017/11/28(火)05:58 ID:Brt1t867(1) AAS
>>818
あるんじゃないの?としか。どんなテーブルとか、フィールドの名前とか、なんかヒントはないですか? 様々な設定も謎が深まるだけですね。
820: 2017/11/28(火)09:43 ID:GeGdCCsE(2/4) AAS
たとえばあるフォームAのオプションボタンの値を98桁に書き込む、フォームBのチェックボックスの値は例えばCstr(Abs(True)))でstringへ変換して105桁に書き込むとかそんな感じです。
合理的な気もするのですが、こういう方法は検索しても見つからないので一般的なのか、特殊なアイデアなのか知りたくなりまして。
821(2): 2017/11/28(火)11:59 ID:vHFzkUKA(1) AAS
すくなくともRDBを使う上ではやるなって言われてるやり方
固定長ファイルにデータ保存してるようなシステムなら結構あったけどね
822: 2017/11/28(火)16:08 ID:GeGdCCsE(3/4) AAS
>>821
そうなんですか。面白そうな話しなので調べてみようと思います。その手法はどういう名称なんですか?もしくは検索ワードを御教示頂けましたら幸いです。
823: あ 2017/11/28(火)18:29 ID:i1R8M5pm(1) AAS
RPG区分列とかじゃないの?古い呼び方だけど。
酷すぎてだれも触りたくないやつ。
RDBに移すような事があったら、末期には照合順序をbinaryにするしか無くなったりすごく苦しむから辞めた方がいい。
メリットらしいメリット無い。LIKEで雑に'[A-C]__1_2'みたいにSELECTできることぐらい。
824: 2017/11/28(火)18:44 ID:GeGdCCsE(4/4) AAS
残念ながら、ググっても何もヒットしません。
なにかヒントをお願い出来ますか?
825: 2017/12/01(金)16:18 ID:xc+Vk5Dr(1) AAS
RPGとRDBで検索したら関係ありそうなのがいくつかヒットしたけど。
検索能力は俺の方が上みたいだな。
826: 2017/12/02(土)14:50 ID:EvURnJTn(1) AAS
固定長ファイルでぐぐったら、先頭に固定長データファイルとはっていうサイトがでたけど
なにでどうググったんだか
827: 2017/12/04(月)10:19 ID:eu/J6Nzp(1) AAS
皆様、御指導、御鞭撻ありがとうございます。
COBOLでよく使う手法だったんですね。
件のmdbはコボラーが設計したんですかね。
828: 2017/12/04(月)23:04 ID:HIES1UEg(1) AAS
言語の問題じゃ無いと思うが
829(1): 2017/12/05(火)01:17 ID:jk/z017d(1/2) AAS
そうなんですか。accessの本には全く載っていないでのすが、RDBMSの世界ではごく一般的な手法なんですか
830: 2017/12/05(火)13:50 ID:JFWc1rHJ(1) AAS
ISAM
831: 2017/12/05(火)14:44 ID:LtpZx+mu(1) AAS
>>829
>>821
832: 2017/12/05(火)16:01 ID:jk/z017d(2/2) AAS
言語の問題ではない
しかしRDBMSではやってはいけない
よくわからないけど昔のデーターベースの本を読んでみますわ
暇つぶしにちょうどいいわ
833: 2017/12/05(火)17:17 ID:Jckjy/ZT(1) AAS
自分たちが使うデータをどういった構造で保持するかは各自で考えて構わない
ただRDBに入れるのであれば、やってはいけなくもないけど、おすすめはしない、という話では?
RDBならテーブル・フィールド分けてデータもコードも見やすくできるのに、そうしないのはもったいないというかなんというか
834: 2017/12/05(火)19:05 ID:IwqbiEq4(1) AAS
結局何の解答にもなってないw
835: 名無し 2017/12/06(水)08:23 ID:qK37T0GP(1) AAS
データベースの列が増やせない何かがあった。
開発者の気まぐれ。手抜き。
従来の固定長ファイルと1:1の情報を保持したかった。
とかね。。。
こっちの業界じゃ拡張DM形式なんて固定長ファイルが普通にやり取りされてて、桁数制限とかが厳しいけど、容量の割に情報量が多いし古いソフトの互換性があるとかで100年以上生きると思うわ。
でも固定長ファイルの文字列をmdbに格納するのは正気とは思えない。データベースのメリット全部殺してるじゃん
836: 2017/12/06(水)08:50 ID:3RgxoH/J(1) AAS
固定長レコードw化石乙ww
837: 2017/12/06(水)09:56 ID:+yD4mhv+(1) AAS
郵便とのやり取りは今でも固定長フィールド使てんじゃね
さすがに今はないか、フロッピーとか
838: 2017/12/06(水)11:12 ID:dYt4FwS2(1) AAS
未だに固定長を扱う事はありますが、設計済みDBに展開して処理していますよ
839(1): 2017/12/07(木)05:51 ID:opi4zWAm(1) AAS
固定長のEDI、増えたりしないだろうけどいつまでも残るんだろなあ。csvやtsvをメール添付で良いのにって思う。
840: 2017/12/07(木)12:12 ID:NfkoL/Di(1) AAS
固定長の方がパースが軽いからなぁ
あといつまでもなくならないレガシな環境とかな
処理系そのものは変更されてもIO部分の仕様変更はなかなかやらない
841: 2017/12/07(木)12:15 ID:YN66KLnO(1) AAS
今どき固定長レコードなんて使ってるのに前向きな理由なんて無いよ
842: 名無し 2017/12/07(木)17:45 ID:d4TqII+f(1) AAS
>>839
同じ拡張子なのに何十種類もバリエーションのある欠陥フォーマットを使うのはやめてくれ
843(1): 2018/02/05(月)10:45 ID:e967XxUr(1/2) AAS
アクセス始めて触る初心者です。
テキストボックスが複数含まれたワードファイルが5000個ぐらいあります
各テキストボックスからいろんな項目を取得するとして、1ファイルあたり30項目ぐらい
つまり5000個のファイル*30項目=15,000項目
これをアクセスで処理していこうと思ってるんですが、アクセスはこの程度さくさく処理できるものでしょうか
目的は、ワードファイルが多すぎて邪魔なんで全部削除したい。必要に応じて元のファイルと同じものを再現できるようにするため、必要な情報をアクセスのデータベースに保存しておくことです
必要なファイルを再現できるように検索機能と再現機能をもったVBAマクロを組むつもりです
省2
844(1): 2018/02/05(月)13:37 ID:KJpDTktT(1) AAS
>>843
初めて触る様な状態なら無理だから、諦めた方がいいですよ
845(1): 2018/02/05(月)13:53 ID:e967XxUr(2/2) AAS
>>844
アクセスは初めてだけどエクセルVBAはそこそこ経験あります
エクセルVBAでなら自分で組める範疇ですね
すでにアクセスで途中までマクロは組んであります
同一フォルダ内にテスト用に作成してあるワードファイルを順次開いてすべてのテキストボックスの値、位置関連の数値を
Debug.Printで出力後、ワードファイルを閉じる
ここまでうまくいってるんであとはアクセスの基本機能理解すればそう困難ではないでしょう
省3
846(1): 2018/02/05(月)20:59 ID:+YlQ+DNK(1) AAS
>>845
エクセルのテーブルに格納したらアクセスにインポートするのが良いんじゃない?
エクセルのままでも良いと思うけど、
847: 2018/02/06(火)08:18 ID:YHjH5DQb(1) AAS
>>846
それいいですね
やってみます
848: 2018/02/06(火)14:52 ID:Y79w2nNG(1/2) AAS
貴乃花親方にしろ有賀さつきにしろ
やはり「語らない」ことが年末から今年にかけてのポイントだな
逆に語っている方が何かと物議を醸しているし
849: 2018/02/06(火)14:53 ID:Y79w2nNG(2/2) AAS
ミスった
すまん
850: 2018/02/07(水)11:19 ID:mhmm9auu(1) AAS
医療過誤?
851: 2018/04/14(土)12:06 ID:bV7+SAsd(1/2) AAS
すみません質問させてください。
Private Sub Form_Load()
Me.TimerInterval = 1000
End Sub
Sub Form_Timer()
Static intShowPicture As Integer
If intShowPicture Then
省8
852(1): 2018/04/14(土)12:24 ID:2RkkR2xg(1) AAS
一秒毎に画像を出したり引っ込めたり
853(1): 853 2018/04/14(土)12:53 ID:bV7+SAsd(2/2) AAS
ご回答ありがとう御座います。
イメージはなんとなく掴めたのですが、
この場合のintShowPictureには何が格納されているのでしょうか?
もしくはBoolean型なのでしょうか?
上下前次1-新書関写板覧索設栞歴
あと 149 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.024s