X



Access VBA 質問スレ Part1
レス数が1000を超えています。これ以上書き込みはできません。
0851デフォルトの名無しさん
垢版 |
2018/04/14(土) 12:06:32.62ID:bV7+SAsd
すみません質問させてください。

Private Sub Form_Load()
  Me.TimerInterval = 1000
End Sub

Sub Form_Timer()
  Static intShowPicture As Integer
  If intShowPicture Then
    Me.btnPicture.Picture = "C:\taiyo.jpg"
  Else
    Me!btnPicture.Picture = ""
  End If
  intShowPicture = Not intShowPicture
End Sub

このコードは何をしているのでしょうか?
ご回答よろしくお願いします。
0853853
垢版 |
2018/04/14(土) 12:53:27.07ID:bV7+SAsd
ご回答ありがとう御座います。
イメージはなんとなく掴めたのですが、
この場合のintShowPictureには何が格納されているのでしょうか?
もしくはBoolean型なのでしょうか?
0854デフォルトの名無しさん
垢版 |
2018/04/14(土) 16:08:38.27ID:1T8oabCl
Static intShowPicture As Boolean
にして試してみろよ
0855デフォルトの名無しさん
垢版 |
2018/04/14(土) 19:25:20.18ID:cGW/rI9o
VBAには暗黙の変換ってのがあるから
IntegerをBooleanに暗黙的に変換して評価してる

まあ、あまり良いコードじゃないな
0856851,853
垢版 |
2018/04/14(土) 21:39:02.03ID:criYFAGW
>>852さん
試しに、フォームと画像を用意して作ったら、点滅しました!
>>854さん
この文でも点滅しました!
>>855さん
Falseが0でTrueが-1なのですね!

ご回答ありがとうございました。
解決しました!
0857デフォルトの名無しさん
垢版 |
2018/04/15(日) 10:38:49.74ID:E1b18XLI
>Falseが0でTrueが-1なのですね!

そうだっけ?
0860デフォルトの名無しさん
垢版 |
2018/04/21(土) 00:22:50.08ID:IpoNn3EX
10万件以上の大量レコードを追加するインサート処理をクエリを作成してDocmd.OpenQueryでやっているが時間が1分以上かかる
この処理をモジュールにADO、もしくはDAOでインサート処理を記述したら、Docmd.OpenQueryより早くなるかな?
0861デフォルトの名無しさん
垢版 |
2018/04/21(土) 12:05:09.74ID:M/Q9a6+d
VBAで書くと数倍遅くなるんじゃね?
Cからなら速いかも知れん
0863デフォルトの名無しさん
垢版 |
2018/04/21(土) 16:21:47.73ID:Zke6MJB8
OpenQueryをCから実行
0865デフォルトの名無しさん
垢版 |
2018/04/22(日) 14:54:13.01ID:QBM3hGX3
10万が大量かどうかという問題も有るがRecordset + AddNewの方が速いと聞いたし、実際俺が組んだ場合も明らかに早いんだが。

状況にもよるかもしれんけど。
0866デフォルトの名無しさん
垢版 |
2018/04/23(月) 02:01:29.71ID:zWK+uIrS
そもそもOpenQueryでどんなクエリ流してインサートしてるかわからんのに比較にならんわ
0867デフォルトの名無しさん
垢版 |
2018/04/23(月) 02:08:10.01ID:zWK+uIrS
>>865
例えば単純な追加クエリや、INSERT SELECTするSQL発行するより
1件ずつAddNewして(どこかから値持ってきて)1カラムずつ値セットするほうが早いっての?
どこで聞いた話だそれ?
0868デフォルトの名無しさん
垢版 |
2018/04/23(月) 09:13:20.51ID:/uUuSWda
やってみてから言ってくれ。
俺の場合は実際早かった。

俺の場合は1カラムずつじゃなくてフィ―ルド名の配列と値の配列でAddNewだけど、たぶん1カラムずつセットしてUpdateでも早いんじゃないかな。
0870デフォルトの名無しさん
垢版 |
2018/04/23(月) 15:45:02.07ID:YMq7Ch8w
SQLでもINSERT一回じゃなくて1行のINSERTを何度も繰り返したら遅くなるからな
それと比べるなよ
0871デフォルトの名無しさん
垢版 |
2018/04/23(月) 17:22:09.14ID:zWK+uIrS
>>868
やってみるから、フィールド数、フィールド長とレコード数教えれ
あと配列のデータどう用意するのかと、比較するクエリの元データどうすのかも

とうぜんACCESSと対象DBエンジンとADOかDAOのバージョンも明示してくれよ

で、ループまわして1レコードずつ.AddNewして.Updateするんだな


これでほんとにVBAが速いならちょっとACCESS使うの考えるわ
0872デフォルトの名無しさん
垢版 |
2018/04/25(水) 22:44:48.30ID:dGu0vJMQ
>>870
そんな低レベルの話はしとらん。

>>871
たぶんフィールドは40~50ぐらいじゃね?
レコードは200万ぐらい。
リモートでOracleに接続してる。
JOINで20個位のテーブル繋げてるな。
ADO使ってる。

パススルーのSELECTクエリ+INSERTじゃ永遠に終わらない感じが20分程度で取得出来るようになった。

「access insert addnew 速度」でクグってみればけっこうAddNewの方が早い話が見つかるぞ。
0873デフォルトの名無しさん
垢版 |
2018/04/26(木) 20:39:25.51ID:/vLmdzNr
だからどこからどうやって元データ取ってきてるんだと
リンクテーブルやリモートDBでADOの方が早いとかなら別に驚くに値せんけどな

というかお前らOpenQueryってレコード数分実行する前提で話してたのか?
0874デフォルトの名無しさん
垢版 |
2018/04/27(金) 17:07:36.05ID:ash3pEtl
パススルーωとか使っちゃいけないTOP3じゃないか
素直にリンクテーブルにすれば良いのに
0875デフォルトの名無しさん
垢版 |
2018/04/27(金) 23:22:48.36ID:jiI6PjPI
パススルーって駄目なの?
リンクテーブルは話にならないくらい遅くてパススルーのが全然早かったんだが。
0876デフォルトの名無しさん
垢版 |
2018/04/28(土) 15:07:07.82ID:6AYZ4JmZ
ケースバイケース
たいていの場合、リンクテーブルに対する操作よりはSQL飛ばすほうが早いとは思うけどな
パススルーが使っちゃいけないTOP3とか初めて聞いたわ
0877デフォルトの名無しさん
垢版 |
2018/05/09(水) 09:34:09.66ID:OAputzVD
keydownイベントからのキー取得ではなくて、
OnKeyDownイベントからキーを取得する方法がわかりません。
Me("テキストボックス"& i).OnKeyDown = "=get_Key(" & this? & ")"
ご教授お願いします。
0878>>877
垢版 |
2018/05/09(水) 17:09:04.61ID:OAputzVD
レスが付かないので別の掲示板に移動します。
0881デフォルトの名無しさん
垢版 |
2018/05/16(水) 14:07:17.01ID:aP5Z4SKQ
業務用mdbのコードを見てて気づいたんだけど、戻り値を使わないのに、functionを作成しているのが非常に多い。
どんなメリット、デメリットがあるのですか?戻り値用の変数を用意するから速度が低下するのが問題なんですか?

英語の本には
>>Many programmers think that they must return something, even if they have to make some artificial return code or status. This practice can make your code harder for others to understand.
て書いてあってヤメレって書いてあるのになんでやりまくるのですかね?
0884デフォルトの名無しさん
垢版 |
2018/05/16(水) 19:24:53.85ID:DzLb+Dky
業務でプログラム組むような場合は、コーディングスタイルが指定されてる事が多いんだよ

正確には戻り値のないFunctiionじゃなくて、戻り値を無視してるだけだけどな
0886デフォルトの名無しさん
垢版 |
2018/05/16(水) 23:07:53.34ID:aP5Z4SKQ
可読性が低下する以外のデメリットは無いんでしょうかね?
個人的には出番のない変数は目障りなんですけどね。
0887デフォルトの名無しさん
垢版 |
2018/05/17(木) 00:12:37.33ID:e2hshpiX
呼び出しネストの限界がFunctionのほうが浅いってデメリットがあるはず
呼び出しに必要なスタック領域が違うから
昔だれかが実測してたな。まあ再帰でよっぽどのことやらんと問題ないんじゃね

SubをFunctionにして可読性が落ちるとか、それ関数の命名に問題がある気がするがな
0888デフォルトの名無しさん
垢版 |
2018/05/17(木) 08:14:31.45ID:JDzFkPHQ
戻り値ある前提で組んでるんでしょ。
エラー処理等で単に関数が失敗か成功かを返すとか。
後で作ろうとしてたけどグダグダになって無しになっちゃうとか。
0889デフォルトの名無しさん
垢版 |
2018/05/17(木) 11:23:10.83ID:eM4CBQj1
後でやろうとしてやめちゃうってのは非常に大変頻繁によくあることだからね。
0890デフォルトの名無しさん
垢版 |
2018/05/17(木) 12:28:55.01ID:HY+Xmele
>>881
呼び出し側でいちいち call 書くの面倒だから
0891デフォルトの名無しさん
垢版 |
2018/05/17(木) 13:35:45.45ID:vSfZvvAw
>>890
FunctionもSubもCallを書かなくても呼び出せすので、理由にならないと思います。
個人的には、Callが書いてないと唐突に見慣れない文が出現するので驚いちゃいます。馴れれば、労力の軽減になるのかな?
0892デフォルトの名無しさん
垢版 |
2018/05/17(木) 13:53:44.02ID:HY+Xmele
call 書かないと () 付かないだろ
() 付かないから知らない文が出て来たと思ってしまう
() 付ければ関数だと判るが call 書かないといけないって話
0893デフォルトの名無しさん
垢版 |
2018/05/17(木) 15:12:43.90ID:vSfZvvAw
>>892
済みません。よくわかりませんのでかみ砕いておしてもらえますか?
Callと括弧がペアで必要なのは理解しています。
もちろん、CALLなし、括弧なしでFunctionもSubも呼び出せるのも知っています。
両者の呼び出しの記法が全く同じで、唯一の例外が
lngSum=AddNumbers(10,20)
等の場合ということも知っています。
0898デフォルトの名無しさん
垢版 |
2018/05/23(水) 19:16:19.68ID:Au5e7VGg
僕の知り合いの知り合いができたパソコン一台でお金持ちになれるやり方
役に立つかもしれません
グーグルで検索するといいかも『ネットで稼ぐ方法 モニアレフヌノ』

BHZ67
0901デフォルトの名無しさん
垢版 |
2018/06/13(水) 13:33:14.15ID:jDAL4HLn
全モジュールをExportするコードがネットにあったので試したら、0TESTModuleという名前のモジュールでエラーになった。0TESTに書き換えたら通った。
予約語かと思ったけど、そんなリスト見つからない。モジュールに名前にModuleが含まれていると失敗するものなの?
ちなみに使ったコードは↓
https://stackoverflow.com/questions/16948215/exporting-ms-access-forms-and-class-modules-recursively-to-text-files
0902デフォルトの名無しさん
垢版 |
2018/06/29(金) 23:41:22.03ID:Ur5E76UH
学生はaccessの勉強してないよね。既存の社内システムメンテナンスできる人を募集してるけど応募が無い。
accessなんて社会人になってから仕事の合間に覚える人がまれにいる、程度のものなのかな。
0903デフォルトの名無しさん
垢版 |
2018/06/30(土) 00:22:45.41ID:2tzAZf7R
そもそもOfficeのPro版がほとんどの市販PCに載ってないから触れたことすらなかった
0904デフォルトの名無しさん
垢版 |
2018/06/30(土) 12:32:46.83ID:QJJEkoJ9
大学はFileMakerすすめるからな
0905デフォルトの名無しさん
垢版 |
2018/06/30(土) 22:27:35.34ID:XUZKNvMV
>>902
給料が安いから応募がないんじゃないの?

いくらで募集なのか知らないが、派遣の求人だと
社内システム作れる人だと時給2100円前後という印象だなAccessは
(高くても2300円くらいか)

だから社内システムメンテ出来る人は普通の会社には行かないのでは
そこまで出来るなら専門業者で働いた方がずっと稼げるだろう
0910デフォルトの名無しさん
垢版 |
2018/07/04(水) 22:00:33.68ID:gFgZc5FG
OH1
0911デフォルトの名無しさん
垢版 |
2018/07/04(水) 22:52:05.24ID:SBPTcvBw
>>909
vbseditで試したけどダメだった
emacsで成功した人がいたのでWIN用emacsインスコしてみた
この後は面倒くさいからあしたやるemacsはいろいろ出来てすごいと言うことが少し分かったわ
0914デフォルトの名無しさん
垢版 |
2018/07/05(木) 10:21:34.29ID:6LeJvB+6
>>912
VSCの奴は2つ入れたけど,オートコンプリートはできるけど,自動メンバー表示は出来ないですね.

>>913
一般的なエディタと比べると余りにもVBEが低機能だからですね.
たとえばコードフォールディングをしたいし,行番号も見たいけど,出来ないですからね.ズームが出来ないのも案外不便.
0915デフォルトの名無しさん
垢版 |
2018/07/05(木) 23:08:09.61ID:pNcP8vSm
フォームでマウスホイールをコロコロしてレコードを移動させるプログラムを教えていただけませんか?
0916デフォルトの名無しさん
垢版 |
2018/07/10(火) 21:58:48.67ID:U+UpIg0Q
ソース連結の単票フォームなら、何にもしなくてもホイールコロコロでページパタパタ出来るけど
そういうのとは違うのか  或いは、制作者が敢えて無効にしてるのを有効化したいのか
或いは、帳票フォームの上下・・ これもホイール効くか、、 シーンを限定してもわらないと
0917デフォルトの名無しさん
垢版 |
2018/07/11(水) 04:54:43.98ID:UzCikUyf
>>914
913です。VBE良くできてるな便利だなと思って使ってました。もっと捗るエディタも有るんですね。
0918デフォルトの名無しさん
垢版 |
2018/07/11(水) 06:04:47.59ID:ejJItOxX
>>917
ネット上にはVBEを賞賛する声は余り見ませんね。悪口は沢山見ます。
emacsをインスコしてみましたが、Windows7 64bitではダメでした。
emacsならやりたいことが全部出来るはずですが、lisp書けないから悲しいです。
0919デフォルトの名無しさん
垢版 |
2018/07/22(日) 19:25:52.08ID:fTZbDOvh
質問です
UPDATEでテーブルを一斉更新する際に、
「Aさん」「Bさん」「Cさん」のようなデータを
繰り返しで連番のように入力させる手段は無いのでしょうか?
連番のような数値型は出来るようなのですが、
文字列で実現する方法が分からないです

目的は出勤している人間(5名程度)に
難易度にムラがある案件(200件程度)を均等・公平に
割り付けるためです

お手数をおかけしますが、どうかご教授ください
よろしくお願いします
0920デフォルトの名無しさん
垢版 |
2018/07/23(月) 00:04:34.46ID:2H/uT7qC
一度連番を振ってその後に「連番 mod 3 = 0」をAさん、
「連番 mod 3 = 1」をBさん、連番 mod = 2」をCさん
っていうようにすれば出来なくもないか…
でもスマートじゃないですし、処理に時間がかかりそうですね
0921デフォルトの名無しさん
垢版 |
2018/07/23(月) 06:42:41.53ID:Aoeea3bS
>>919
解答ではありません。
私ならexcelにエクスポートして手作業でautofill してインポート。またはvbaで一件ずつ読み書き。
Sqlでどうするかわかったら教えてください。
0922デフォルトの名無しさん
垢版 |
2018/07/23(月) 10:05:37.58ID:86GO4HnW
連番(数値型)を繰り返し入力させる方法が分かるのなら、
1=Aさん、2=Bさん、…っていうテーブル用意しておいて、
連番振ったあと更新クエリで文字列を更新させるのは駄目ですか?
0923デフォルトの名無しさん
垢版 |
2018/07/23(月) 10:21:18.69ID:eU1p7hr8
autoincrement
0924デフォルトの名無しさん
垢版 |
2018/07/27(金) 08:00:42.36ID:G5saNUly
20人程度が1つのテーブルにそれぞれ10分間隔くらいでUPDATE INSERTをしているんですが、突然テーブルが開けなくなりました
「他者が開いています」というメッセージが出て開くことやコピーすら出来なくなりました

対策やこの症状が出た時の対処方法はないのでしょうか?

フロントエンドとしてユーザーの数だけUI用のAccessファイルを準備して、
バックエンドはテーブル1つだけのAccessファイルを置いています
0925デフォルトの名無しさん
垢版 |
2018/07/27(金) 12:49:22.89ID:ASV/JfNN
そうなる前に、誰かがなんかのエラーを発してるはず
或いはエラーを殺しちゃってるかどうか
大概マズイことには口を噤むのが社畜の習い性

エラーにならないよう対策するか、エラー時に対策するか

コピーすらできないなら、サーバー側での対策として
バックアップ時に戻すか
そのファイルさえ救出出来たら修復できるんだろうけど
0926デフォルトの名無しさん
垢版 |
2018/07/27(金) 13:38:08.89ID:rdFKIS0q
共有数の制限の気がするけど
そのバックエンドのアクセスファイルはどこでどうやって共有してるんだよ
0927デフォルトの名無しさん
垢版 |
2018/07/27(金) 17:29:47.26ID:hf+c8Fmp
919です
返答が遅くなってしまい申し訳ありません

>>921
解決しました
元々テーブルに連番が振ってあったので、それを利用して
sqlのswitch文とmodを使ってます
リストボックスで選択した担当者を配列に格納して
ubound関数やらを使ってvbaでsqlを生成しました

switch id mod i
0:Aさん
1:Bさん
2:Cさん
3:Dさん

って感じのイメージです

>>922
週休者には割り当てたくなかったので上記方法で解決しました
0928デフォルトの名無しさん
垢版 |
2018/07/27(金) 17:35:57.88ID:hf+c8Fmp
>>925
先日は事前に取っておいたバックアップまでロールバックして対処しました
未だにエラーの原因が分からないので
不具合が起きた時の対策とバックアップ頻度を上げるような
業務フロー(タイマー関数含む)を追加しようと思います

開けなくなったファイルは日を跨いだら開けるようになりました
恐らく誰かが気づかずにバックグラウンド掴んでる状態だったんだと思います

>>926
特にオプションをいじっていないaccdbを共有サーバに
そのまま置いてる状態です
データを取得するのはサーバのバックエンドテーブルを
ローカルファイル(フロントエンド)にコピーして
ローカルで完結して参照しています
更新や追加する時だけバックエンドのテーブルに
UPDATEとINSERTをしています
0929デフォルトの名無しさん
垢版 |
2018/08/11(土) 16:51:32.08ID:/3QviRkj
質問です。
分割フォームの
分割フォームデータシートプロパティを
VBAから操作できる方法がありますでしょうか?
ご教授お願い致します。
0930デフォルトの名無しさん
垢版 |
2018/08/11(土) 18:04:27.51ID:MwiIaP9n
具体的なプロパティもわからんしお休みなのでパソコンも手元にないけど検索したらsplitformsize のvba コードがあるから何らかの操作は出来るんでないの?お盆モードの適当コメントですまぬ。
0931929
垢版 |
2018/08/11(土) 18:45:39.43ID:/3QviRkj
>>930さん

ありがとうございます!
splitform vbaで調べていたら見つかりました!!
うれしいです!

Private Sub コマンド11_Click()

If Forms("test").SplitFormDatasheet = acDatasheetReadOnly Then
Forms("test").SplitFormDatasheet = acDatasheetAllowEdits
Forms("test").コマンド11.Caption = "過去のデータを編集不可にします。"
Else
Forms("test").SplitFormDatasheet = acDatasheetReadOnly
Forms("test").コマンド11.Caption = "過去のデータを編集可能にします。"
End If

End Sub

ありがとうございます!!
0932デフォルトの名無しさん
垢版 |
2018/08/23(木) 22:05:56.98ID:VOAIsull
サイズの限界まで巨大化しているフォームを改造して、様々なコントロール類をタブコントロール上に配置しようと考えています。
元のフォーム上のコントロール類をコピーしてタブコントロール上にペーストしたまでは良かったのですが、イベントプロシジャーがごっそり抜け落ちています。コマンドボタンを押してもなにも始まらない状態です。
イベントプロシジャーを保持したままコントロールをコピペする方法はありますか?
0934デフォルトの名無しさん
垢版 |
2018/08/24(金) 06:25:14.72ID:zBeCnEZ1
>>933
良かったね。
俺はVBA コードを頑張ってコピーしてるのでよかったら解説下さい。えーごわからないので。翻訳機能?あの人たちとは話が合わん!
0935デフォルトの名無しさん
垢版 |
2018/08/24(金) 09:58:42.20ID:IIPiSmN7
Accessの本はいろいろ買ったけど、良書だなあと感心したのはほとんどが未翻訳の洋書でした。
谷尻、緒方、葛西も和書としては悪くないのですが、洋書と比較すれば月とスッポンです。
技術書の英語は辞書とgoogle翻訳でだいたいなんとかなりますよ。
たまに文学的表現があってイラッとしますけど、だいたいが簡単明瞭です。
0936デフォルトの名無しさん
垢版 |
2018/08/24(金) 10:46:31.53ID:jVqNqoKW
すいません質問です。オフィス365です。
手動で空のサブレポートをレポートに配置しました。これをVbaコード でコピーする方法を教えてくださいませ。
0937デフォルトの名無しさん
垢版 |
2018/08/30(木) 13:16:49.85ID:onaqxfsR
すみません、質問させてください。
ExcelからAccessの特定のフォーム
を閉じるとき、
DoCmd.Close acForm, "フォーム名"
で入れると、おそらくacFormがAccessVBAの引数のためか、
エラーが出てしまいます。
何か解決方法があればご教授よろしくお願いします。
0938デフォルトの名無しさん
垢版 |
2018/08/30(木) 13:20:53.05ID:S/vwwZyF
アプリが違うからOLEとかActiveXObject使うんでは
0939デフォルトの名無しさん
垢版 |
2018/08/30(木) 14:29:11.04ID:4drhoSMA
>>937
acForm=2なので、acFormじゃなく直接2を指定してみると上手く行くかも

DoCmd.Close 2, "フォーム名"
↑でやってみて
0940デフォルトの名無しさん
垢版 |
2018/08/30(木) 16:02:05.01ID:onaqxfsR
>>938さん、939さん
ありがとうございます。
939さんの方法でいけました。
ありがとうございますm(_ _)m
番号で指定する方法があったのですね。
感謝です。
0942デフォルトの名無しさん
垢版 |
2018/09/13(木) 01:52:34.58ID:iAlG4Fvk
アホな質問ですまん。
クエリの中でクエリを複数使うクエリを作成したんだけど、これをSQLに書き直すときにエイリアスを使いたいんだけど、クエリに対するエイリアスは使えるのかな?テーブルだけかな?
実験した感じではダメそうなんだけど、どうですか?
0943デフォルトの名無しさん
垢版 |
2018/09/13(木) 03:14:29.75ID:liq2Qruq
>>942
普通に使えるはずだが
AS付けてないとか
0944デフォルトの名無しさん
垢版 |
2018/09/13(木) 03:15:45.30ID:liq2Qruq
DAO経由じゃないとだめだったかも
0947デフォルトの名無しさん
垢版 |
2018/09/14(金) 08:17:56.50ID:JMy0VfN7
たぶん、サブクエリじゃなくて作成済みのクエリをSQL内部のFROM句やJOIN句にテーブルのように使う時にエイリアスを使いたいという話だと思うんだが、それでも普通に使えると思う。
0948942
垢版 |
2018/09/14(金) 11:04:12.59ID:cjIZJ/+q
みんな、ごめん。使えました。
おいらがSQLビューで書くときに、どっか間違えたみたい。
クエリのエイリアスも使えるし、サブクエリでネストも出来るし、accessって凄いね。糞長いSQLを書きたくなるね。
問題は余計な括弧がいっぱいくっつくところだよね。
0949デフォルトの名無しさん
垢版 |
2018/09/14(金) 12:54:33.03ID:cjIZJ/+q
またまたくだらない質問です.
UPDATEで苦労していますが,https://www.ipentec.com/document/sql-multi-record-update に書いてある
update working set value=price from products where working.name = products.name
だとエラーが出ます.試行錯誤して成功したのは
UPDATE working, products SET working.[value] = [products].[price]
WHERE (((working.name)=[products].[name]));
でした.UPDATEの述語に参照するだけのproductテーブルが書いてあるのが不可解ですね.
なんで,こんな変な書き方をするのか分かる人いますか?
0950デフォルトの名無しさん
垢版 |
2018/09/14(金) 13:41:49.29ID:5xDSXwp0
fromが無いから
0951デフォルトの名無しさん
垢版 |
2018/09/14(金) 15:43:10.38ID:cjIZJ/+q
>>950
FROMを書きました.下のようにしました.でも,演算子がありませんと怒られます.

UPDATE [working],[products]
SET [working].[value] = [products].[price]
FROM [products]
WHERE ((([working].[name])=[products].[name]));
0952デフォルトの名無しさん
垢版 |
2018/09/14(金) 15:43:55.27ID:cjIZJ/+q
これも同じように怒られます.

UPDATE [working]
SET [working].[value] = [products].[price]
FROM [products]
WHERE ((([working].[name])=[products].[name]));
0953デフォルトの名無しさん
垢版 |
2018/09/14(金) 18:33:15.77ID:JMy0VfN7
それだと[products].[price]の後が何だか分からん。

[products].[price]を求めるSQLをそのまま書くかJOIN使った方が良い。

UPDATE [working]
SET [working].[value] = (SELECT [products].[price]
FROM [products]
WHERE ((([working].[name])=[products].[name])));

UPDATE [working]
INNER JOIN [products]
ON [working].[name]=[products].[name]
SET [working].[value] = [products].[price];

スマホからテキトーに書いてるので間違ってたらスマン。
0954デフォルトの名無しさん
垢版 |
2018/09/14(金) 20:41:59.46ID:cjIZJ/+q
>>953
上のは,更新可能なクエリであることが必要です と怒られました.
下のは成功です.ありがとうございます.

FROMを記載したコードでは出来ないというのが興味深いですね.
クエリーと一般のSQLではコードを処理する方法がかが違うんですかね?
聞きかじりですが,オプティマイザとか実行計画とか言う奴ですかね?

次はクエリを参照するUPDATEを書かないといけないのですが,テーブルならOKでクエリでは怒られるんですよね.
http://www.10days.org/diary/20090705.htmlとかその他いろいろヒットしますが,VBAからSQLを発行したら出来るんですかね?
とりあえず実験します.
0955デフォルトの名無しさん
垢版 |
2018/09/14(金) 21:06:57.90ID:wdFP/Mir
>>951
横入だがAccessがUPDATEでのFROMを
サポートしていないという意味での「FROMがないから」
じゃないの?
0959デフォルトの名無しさん
垢版 |
2018/09/15(土) 11:35:48.46ID:AVfR6YnT
>>954
更新クエリに設定しろ
0960デフォルトの名無しさん
垢版 |
2018/09/16(日) 09:41:31.06ID:o5IUt/R9
昔はオラクルとかに直接更新クエリ実行しようとして固まってたなあ、、、
ハード性能上がった今でも固まるのかね?
0962デフォルトの名無しさん
垢版 |
2018/09/16(日) 18:15:18.31ID:HF0YmRsW
アスペですね
0963デフォルトの名無しさん
垢版 |
2018/09/16(日) 19:05:43.00ID:8jdJAOdP
それ以前に、ハード性能で固まったことなんてないんだが
単に遅いだけで固まったって言ってるのかね
0966デフォルトの名無しさん
垢版 |
2018/09/16(日) 22:05:06.06ID:8jdJAOdP
>>964
だからそれは単に遅いだけだろうと言ってるんだが

ついでに言えば、ACCESSで外部DBMS使うときに一番気を付けるべきは回線の速さだがな
その環境でも、100MのLANならそれなりに快適だったわ
0967デフォルトの名無しさん
垢版 |
2018/09/17(月) 18:07:40.72ID:l9KryutO
486DXでAccess95とか動いたっけ
0968デフォルトの名無しさん
垢版 |
2018/09/17(月) 19:52:07.58ID:3YPJfo/c
多分動いたと思う。
ペンティアム90では確実に動いた。
当時486DX100マシンにOffice入れてたと思うんだが、そのマシンでAccess動かしたかどうかで記憶が無い。
0970デフォルトの名無しさん
垢版 |
2018/09/18(火) 19:14:26.16ID:32W6TMTL
マハーポーシャの思い出しかないわ
0971デフォルトの名無しさん
垢版 |
2018/09/18(火) 21:06:59.49ID:Y+CFjjh5
>>970
出張でアキバ行ったらチラシ貰った。あんな事件起こすなんて夢にも思わず、スペックのわりに安いじゃんなんて思ってたわ。
0972デフォルトの名無しさん
垢版 |
2018/10/15(月) 12:32:08.29ID:UJZpBNX3
DAOでmdbに接続して、フォーム上のコントロールボタンのCaptionを大量に一括変更したいんだけど、できるかな?
データーベースオブジェクトのメンバーのリストを眺めてもフォーム関連がないので、だめなのかな?
0974デフォルトの名無しさん
垢版 |
2018/10/15(月) 19:00:25.28ID:UJZpBNX3
リンクが死んでいて読めません。
ネット探しても情報が見つかりませんね。
パッチを当てるときに便利な気がするのですが…
私が知ってるパッチはモジュールやフォームを入れ替えるものばかりですが、一部編集みたいなことが出来ると便利な気がしますがどうでしょうか。
コードを1行書き換えとか出来ると便利な気がしますが、リスクもありそうですね。
0975デフォルトの名無しさん
垢版 |
2018/10/15(月) 23:32:47.15ID:L3fZFxj5
>>974
MSのURLは2chのリンク表示と相性が悪いからクリック
カッコまで全部コピーしてブラウザに貼りつけないと付けると飛べるぞ

ラベルを外部リソースにしてフォーム側で呼び出すのが正攻法な気がするが
多言語対応とか
0978デフォルトの名無しさん
垢版 |
2018/10/22(月) 12:14:49.52ID:9BvHUkZ3
マクロの編集をVBAで出来ませんかね?バージョンアップの際にカスタマイズ済のAutokesyを再現したいもので。
0979デフォルトの名無しさん
垢版 |
2018/10/23(火) 14:44:19.48ID:qJAZHzzr
>>978
出来る、何年か前に前の勤め先でやったわ
あまり覚えてないが、VBEにアクセスする方法があって
それで出来たと思う

ググりながらやった覚えがあるからググれば
何かヒントが出てくると思う
0980デフォルトの名無しさん
垢版 |
2018/10/23(火) 17:12:08.69ID:D922t3yz
>>979
saveastextですね。あれ、最近のoffceだとゴミコードが1行あって、そのままでは読み込めないんですよね。
0981デフォルトの名無しさん
垢版 |
2018/12/04(火) 21:13:39.22ID:TBSeaia1
業務用ソフトでどこからもGOTOされていないラベルがあるんだけど、作った奴は馬鹿なのかな?
0982デフォルトの名無しさん
垢版 |
2018/12/05(水) 13:19:49.01ID:2sSegHBZ
いくらでもある
0983デフォルトの名無しさん
垢版 |
2018/12/05(水) 14:21:48.59ID:8B064Egy
そうですか…
宣言だけして使わない変数や、空のプロシジャー、その空のプロシジャーを呼び出す無意味なプロシジャー、戻り値を変数に格納だけしてなにも利用しない関数とか意味不明なことが多くてPGの世界ってカオスなんだな。
リーダブルコードとかだと絶対に怒られるようなことが目白押しだわ。
0984デフォルトの名無しさん
垢版 |
2018/12/05(水) 14:51:15.50ID:2sSegHBZ
理想と現実は違う
0986デフォルトの名無しさん
垢版 |
2018/12/05(水) 17:29:29.08ID:8B064Egy
なるほど…
カスタマイズしている方からすると添削をしているよう気分になりますね。
稼働しているコードの何倍もあるコメントアウトされた過去コードとかあって、正にべからず集みたいなもんですね。
0990デフォルトの名無しさん
垢版 |
2018/12/10(月) 21:20:32.74ID:WdAp4299
マクロのAutokeysが急にキーを取りこぼすようになった。F1を押すとプロシジャーの実行をしてくれないでHELPが立ち上がる。
F2等をおしても無反応になってしまった。officeのアップデートが原因かな?WIN7とAccess2016の組み合わせなんだけど分かる人いますか?
0991デフォルトの名無しさん
垢版 |
2018/12/11(火) 13:04:58.28ID:eQLW3H68
Access最近アプデしてないな
古いのまだ使ってる
0993デフォルトの名無しさん
垢版 |
2018/12/11(火) 19:29:38.35ID:cP19L9C3
20年くらい前はAccessファイルはいつ壊れるかわからない。
って言われてたけど、いまってどうなの?
0996デフォルトの名無しさん
垢版 |
2018/12/11(火) 23:24:33.12ID:ADs7qBab
>>993
同じだと思うよ。いつもは動くプロシジャーが変な挙動するようになってそのうち、フォームが全部消えちゃうとか何度もあった。というかこの1週間でもあったよ。本当にポンコツだよ。
とはいえ、ここまでカスタマイズが自由に出来るDBって他に無いような気がするけど、どうなんだろう。
0998デフォルトの名無しさん
垢版 |
2018/12/12(水) 10:51:22.24ID:I3Mp/+TW
いまはIMEの辞書が良く壊れるイメージ
0999デフォルトの名無しさん
垢版 |
2018/12/12(水) 10:53:08.65ID:I3Mp/+TW
>>996
小規模のシステムでも
テーブル用のmdbとフォーム用のmdbを分けて
リンクで管理すると壊れるケースはかなり減った
1000デフォルトの名無しさん
垢版 |
2018/12/12(水) 10:53:27.51ID:I3Mp/+TW
次スレはよ
10011001
垢版 |
Over 1000Thread
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 2500日 11時間 59分 41秒
10021002
垢版 |
Over 1000Thread
5ちゃんねるの運営はプレミアム会員の皆さまに支えられています。
運営にご協力お願いいたします。


───────────────────
《プレミアム会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────

会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。

▼ プレミアム会員登録はこちら ▼
https://premium.5ch.net/

▼ 浪人ログインはこちら ▼
https://login.5ch.net/login.php
レス数が1000を超えています。これ以上書き込みはできません。

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