Access VBA 質問スレ Part1
レス数が1000を超えています。これ以上書き込みはできません。
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
>>942
普通に使えるはずだが
AS付けてないとか >>942
普通に出来るはずだぞ
どういう状況でダメになってるんだ? >>942
サブクエリの話だよな?
自作ツールで確認したがASで普通にできてたぞ たぶん、サブクエリじゃなくて作成済みのクエリをSQL内部のFROM句やJOIN句にテーブルのように使う時にエイリアスを使いたいという話だと思うんだが、それでも普通に使えると思う。 みんな、ごめん。使えました。
おいらがSQLビューで書くときに、どっか間違えたみたい。
クエリのエイリアスも使えるし、サブクエリでネストも出来るし、accessって凄いね。糞長いSQLを書きたくなるね。
問題は余計な括弧がいっぱいくっつくところだよね。 またまたくだらない質問です.
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テーブルが書いてあるのが不可解ですね.
なんで,こんな変な書き方をするのか分かる人いますか? >>950
FROMを書きました.下のようにしました.でも,演算子がありませんと怒られます.
UPDATE [working],[products]
SET [working].[value] = [products].[price]
FROM [products]
WHERE ((([working].[name])=[products].[name])); これも同じように怒られます.
UPDATE [working]
SET [working].[value] = [products].[price]
FROM [products]
WHERE ((([working].[name])=[products].[name])); それだと[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];
スマホからテキトーに書いてるので間違ってたらスマン。 >>953
上のは,更新可能なクエリであることが必要です と怒られました.
下のは成功です.ありがとうございます.
FROMを記載したコードでは出来ないというのが興味深いですね.
クエリーと一般のSQLではコードを処理する方法がかが違うんですかね?
聞きかじりですが,オプティマイザとか実行計画とか言う奴ですかね?
次はクエリを参照するUPDATEを書かないといけないのですが,テーブルならOKでクエリでは怒られるんですよね.
http://www.10days.org/diary/20090705.htmlとかその他いろいろヒットしますが,VBAからSQLを発行したら出来るんですかね?
とりあえず実験します. >>951
横入だがAccessがUPDATEでのFROMを
サポートしていないという意味での「FROMがないから」
じゃないの? >>954
確かAccessはUPDATEでFROMは使えないぞ >>956
マジすか?ありがとうございます.
SQLって方言が多いんですね. 昔はオラクルとかに直接更新クエリ実行しようとして固まってたなあ、、、
ハード性能上がった今でも固まるのかね? リンクテーブルに対して何かするのを「直接」とは言わないからな? それ以前に、ハード性能で固まったことなんてないんだが
単に遅いだけで固まったって言ってるのかね >>963
初代ペンティアムマシンでAccess97で動かした事無い人かな >>964
それは何自慢?俺は20年前からACCESS やってるベテランだぞすごいだろう? >>964
だからそれは単に遅いだけだろうと言ってるんだが
ついでに言えば、ACCESSで外部DBMS使うときに一番気を付けるべきは回線の速さだがな
その環境でも、100MのLANならそれなりに快適だったわ 多分動いたと思う。
ペンティアム90では確実に動いた。
当時486DX100マシンにOffice入れてたと思うんだが、そのマシンでAccess動かしたかどうかで記憶が無い。 Windows95が動いてたからOFFICEの95も動いてたと思う >>970
出張でアキバ行ったらチラシ貰った。あんな事件起こすなんて夢にも思わず、スペックのわりに安いじゃんなんて思ってたわ。 DAOでmdbに接続して、フォーム上のコントロールボタンのCaptionを大量に一括変更したいんだけど、できるかな?
データーベースオブジェクトのメンバーのリストを眺めてもフォーム関連がないので、だめなのかな? リンクが死んでいて読めません。
ネット探しても情報が見つかりませんね。
パッチを当てるときに便利な気がするのですが…
私が知ってるパッチはモジュールやフォームを入れ替えるものばかりですが、一部編集みたいなことが出来ると便利な気がしますがどうでしょうか。
コードを1行書き換えとか出来ると便利な気がしますが、リスクもありそうですね。 >>974
MSのURLは2chのリンク表示と相性が悪いからクリック
カッコまで全部コピーしてブラウザに貼りつけないと付けると飛べるぞ
ラベルを外部リソースにしてフォーム側で呼び出すのが正攻法な気がするが
多言語対応とか マクロの編集をVBAで出来ませんかね?バージョンアップの際にカスタマイズ済のAutokesyを再現したいもので。 >>978
出来る、何年か前に前の勤め先でやったわ
あまり覚えてないが、VBEにアクセスする方法があって
それで出来たと思う
ググりながらやった覚えがあるからググれば
何かヒントが出てくると思う >>979
saveastextですね。あれ、最近のoffceだとゴミコードが1行あって、そのままでは読み込めないんですよね。 業務用ソフトでどこからもGOTOされていないラベルがあるんだけど、作った奴は馬鹿なのかな? そうですか…
宣言だけして使わない変数や、空のプロシジャー、その空のプロシジャーを呼び出す無意味なプロシジャー、戻り値を変数に格納だけしてなにも利用しない関数とか意味不明なことが多くてPGの世界ってカオスなんだな。
リーダブルコードとかだと絶対に怒られるようなことが目白押しだわ。 そう、動きゃいいんだから
見た目なんか気にしてたら絶対に間に合わない なるほど…
カスタマイズしている方からすると添削をしているよう気分になりますね。
稼働しているコードの何倍もあるコメントアウトされた過去コードとかあって、正にべからず集みたいなもんですね。 >>987
FileMakerはスクリプト(マクロ)しか無いからな >>988
両方そなわってたら、Accessを潰せてたのにね。 マクロのAutokeysが急にキーを取りこぼすようになった。F1を押すとプロシジャーの実行をしてくれないでHELPが立ち上がる。
F2等をおしても無反応になってしまった。officeのアップデートが原因かな?WIN7とAccess2016の組み合わせなんだけど分かる人いますか? Access最近アプデしてないな
古いのまだ使ってる >>991
2013使ってるならアプデする意味がほぼないし 20年くらい前はAccessファイルはいつ壊れるかわからない。
って言われてたけど、いまってどうなの? >>993
同じだと思うよ。いつもは動くプロシジャーが変な挙動するようになってそのうち、フォームが全部消えちゃうとか何度もあった。というかこの1週間でもあったよ。本当にポンコツだよ。
とはいえ、ここまでカスタマイズが自由に出来るDBって他に無いような気がするけど、どうなんだろう。 WindowsFormの不自由さにはびっくりしたな >>996
小規模のシステムでも
テーブル用のmdbとフォーム用のmdbを分けて
リンクで管理すると壊れるケースはかなり減った このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 2500日 11時間 59分 41秒 レス数が1000を超えています。これ以上書き込みはできません。