[過去ログ] Access VBA 質問スレ Part1 (1002レス)
上下前次1-新
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
521: 2015/11/12(木)17:02 ID:Cdboni3Z(4/4) AAS
>>517
くえりをそのままレポートは難しそうだったのでテーブル化はしてあります
522: 2015/11/13(金)20:45 ID:7WxIZdrP(1) AAS
複雑になってるクエリが循環参照になってるようなのだが、読み解かずにテーブル作成して逃げようとしたらまたエラーなんとかならんかなー
523: 2015/11/13(金)20:51 ID:etlrmpjh(1) AAS
>>519
クエリ出来てるなら、レポート作って保存しておけば好きなときに開くだけじゃん
524(4): 2015/11/13(金)22:14 ID:fKrJSaVy(1) AAS
vbaでfilecopy(fsoも含む)でリムーバブルディスクにファイルをコピーするとハードウェアの安全な取り外しで
ファイルが使用中とかでできない。まぁ警告のダイアログで続行を押すと取り外せるんだけど、これやると
マイコンピュータからリムーバブルディスクが消えなかったりすることがある。
accessを終了すると普通に取り外せるんだけど、これをなんとかできないかなぁ。
525(1): 2015/11/14(土)00:03 ID:Q8aVOdfz(1) AAS
>>524
Fsoでやるなら、
宣言で as new ...とかしない、最後にNothing入れとくを徹底したら無くなるんじゃないかな。
526(1): 2015/11/14(土)00:13 ID:YdrOLc06(1) AAS
カレントフォルダとカレントドライブを明示的に
リムーバブルじゃないとこに設定してやれば行ける見たいな事を聞いたことがある
527: 2015/11/14(土)07:50 ID:ZUqvxiq2(1) AAS
>>524
それ、使用したメソッドがファイル掴んだままで、開放してないからでしょ。ちゃんとプログラミングのイロハ身につけてたらやらない。
使ったら必ず開放する。VBAユーザはなぜか使いっぱなしが多い。
528: 2015/11/14(土)08:28 ID:f21e1kim(1) AAS
.NETなんかだとマネージドは書いてもほぼ意味なかったりで使いっ放し推奨
529: 524 2015/11/14(土)10:27 ID:c/SicAL6(1/2) AAS
>>525、527
Dim objFileSys As Object
Set objFileSys = CreateObject("Scripting.FileSystemObject")
objFileSys.CopyFile 元ファイル, コピー先フォルダ & "\"
Set objFileSys = Nothing
copyfileの部分だけをかいつまんで書くとこんな感じだけど、解放の仕方を教えてくれないか。
リムーバブルディスクにコピーしたファイルは開けるし削除もできるからロックされた感じじゃないんだよね。
省1
530: 2015/11/14(土)11:01 ID:ajpWryyv(1) AAS
getdriveとか適当なのを実行してみたら?
カレントが移動するかも。
531: 524 2015/11/14(土)12:52 ID:c/SicAL6(2/2) AAS
>>526、530
ありがとう。この方法で解決した。
ChDrive "c" って1行追加しただけでOKでした。言われないと気付かなかったから助かりました。
他のみなさんもありがとう。
532: 2015/12/06(日)22:14 ID:ZiGqGoDJ(1) AAS
重複した文言の多いcsvファイルの情報を読み込む時に、重複しない文言を蓄えたテーブルと、
文言テーブルのIDだけを入力したテーブルに分けて管理する事で容量を節約しようと思ってるんですが、
人が読める様にIDから元の文言を復元したテーブルを作りたいと思った時、
VBAで文言一つ一つ代入したテーブルを新たに作るしかないですかね?
533: 2015/12/07(月)01:08 ID:D3MoacxB(1) AAS
IDでテーブル結合したview作るなりクエリにすりゃいいんじゃないの
どちらにしろVBAとか関係ないと思う
534(1): 2015/12/10(木)11:46 ID:V//Y2NlP(1) AAS
質問です
Access2007ファイルのショートカットをデスクトップに作ろうと思って
外部リンク[html]:www.moug.net
ここを参考にパスとかだけ変えて作ったんだけど、ショートカットが作成されません
解決策教えてください
535: 2015/12/10(木)12:16 ID:gg94mj0B(1) AAS
うちはできたよ
536: 534 2015/12/11(金)16:06 ID:UbN3V6OX(1) AAS
出来ました。
537: 2016/01/04(月)04:37 ID:KKPx2R3A(1) AAS
mdbファイルのテーブル構造をADO.NET SqlCommandで取り出す方法を知りたいです。(データ定義言語的な取り出し)
DoCmd.TransferDatabase acExportでできるテーブル構造のコピーと同じことを,ADO.NETで,元データなしで実現(テーブル生成)したり
プログラム側が想定するテーブル構造と一致するか確認する処理をテーブル生成→比較とすることで一般化したりしたいのですが
538: 2016/01/04(月)18:57 ID:uh/Y4MEw(1) AAS
ADODBEX
539: 2016/01/09(土)22:01 ID:ytxGXkKI(1) AAS
Accessでプロマネの仕事頼まれたけど断ったわ
もうVisualStudioが無いと何もできない体になってしまった
540(1): 2016/01/10(日)01:26 ID:0BvJ+8Ai(1) AAS
プロマネの仕事は開発じゃない、とつっこみ
541(1): 2016/01/11(月)08:38 ID:grtS6L7L(1) AAS
>>540
そういういかにも日本的で世界で通用しない回答は誰も期待していないし、
君みたいな奴は誰も求めていない。
542: 2016/01/11(月)17:35 ID:ErJJ4Q3v(1) AAS
>>541
君には悲しいかもしれないけど、ここ日本なのよね
543(2): 2016/01/14(木)21:12 ID:RIYdCmvc(1) AAS
テーブルにインポートするとたまに失敗する変なゴミデータが入ったエクセルファイルをVBAでテーブルに登録しようとしてます。1レコード100フィールドほどあるもので、addnewで登録すると100件で20秒ほど掛かってしまいます。
Insertでも23秒でした。
全部で10万件あるのですが、高速登録する方法ないでしょうか?
544: 2016/01/14(木)22:01 ID:fK8eMzuy(1/2) AAS
>>543
配列で受けると速くなるかもしれない
dim ary as variant
ary = Range("A1").CurrentRegion.value ' 1オリジンの2次元配列
545: 2016/01/14(木)22:04 ID:fK8eMzuy(2/2) AAS
ゴミは数式やエラー値が混ざってるんだろうから配列にした段階で適当に変換する
dim row, col
for row = lbound(ary(), 1) to ubound(ary(), 1)
for col= lbound(ary(), 2) to ubound(ary(), 2)
if ゴミ?(ary(row, col)) then ary(row, col) = ゴミ処理(ary(row, col))
next
next
省1
546: 2016/01/14(木)23:52 ID:SY7xxp+v(1/2) AAS
>>543
パフォーマンス重視ならレコードセットやExcelオブジェクトは扱わない方が良いですよ
1.インポート定義でインポート
2.リンクテーブルを作って追加クエリ
3.SQL の IN 句使って INSERT
4.OLE DB の Jet か ACE で接続して INSERT
などなど...
省2
547: 2016/01/14(木)23:55 ID:SY7xxp+v(2/2) AAS
書き忘れ
インポート定義は文字列切り詰めなどが起きるかもしれないので
使うなら想定しておいた方が良いです
548: 2016/01/15(金)00:07 ID:obwNql4P(1) AAS
レコード長とかPCのスペックとかもわからんが
コードでもっと早くできる余地がいっぱいある気がするぞ
というか、純粋な追加で時間かかってるのか?
エラーチェックに時間かかってるんじゃないのか
549: 2016/01/17(日)14:16 ID:A2o/pomn(1) AAS
access2013の質問がしたいのですがここでは不可でしょうか?探してもスレが見つからなかったので誘導していただけないでしょうか?
550: 2016/01/17(日)18:47 ID:wzxdIUIG(1) AAS
聞くがよい
551: 2016/01/18(月)17:00 ID:cbTDZ81K(1) AAS
Access総合相談所 27
2chスレ:bsoft
552: 2016/01/20(水)21:12 ID:b2HKKJl2(1/2) AAS
access 2013での質問です。
テーブルAの構成要素は【id(オートナンバー)、写真(添付ファイルで複数値を持つフィールド)】となっております。
この状態で、テーブルAの任意のIDに写真が入っているか否かを確認したいと考えております。
今のところ
dim RS As DAO.Recordset2
set RS = CurrentDb.OpenRecordset(
553(2): 2016/01/20(水)21:13 ID:b2HKKJl2(2/2) AAS
すみません、途切れました
set RS = CurrentDb.OpenRecordset("テーブルA")
With RS
.FindFirst "id = ○"
End With
で任意のIDに移動できるのですが、そこから写真フィールドにデータが入っているか否かをどのように確認したら良いかが分かりません。
一応複数値を持つフィールドということから
省8
554(1): 2016/01/21(木)00:33 ID:eWUPCZWU(1/3) AAS
添付ファイルで複数値を持つフィールド ってのがよくわからん
そのフィールドのデータ型と
実際に内容をセットしてるコード出してみ
555(1): 2016/01/21(木)07:45 ID:7TL6zMKQ(1) AAS
>>554
お返事ありがとうございます。
TABLEAのフィールド"写真"にデータをセットするのはフォーム上で行っております。
MsgBox TypeName(.Fields("写真")) で確認をしてみたところ、
Field2 オブジェクト (DAO)
外部リンク[aspx]:msdn.microsoft.com
と返ってきました。
省1
556: 2016/01/21(木)12:58 ID:zpe1QHZ3(1/2) AAS
伝わったが答える気にはならなかった
557(1): 2016/01/21(木)13:50 ID:tpiDrCnM(1) AAS
テーブルAのあるレコードでは【写真】に外部からデータが入っていて,違うレコードでは入っていないから,それを確認したいということ?
RS_写真のeofとbofを調べれば良いだけだと思う.
外部リンク[aspx]:msdn.microsoft.com
ここにサンプルが有るから頑張って
558: 2016/01/21(木)15:33 ID:zpe1QHZ3(2/2) AAS
これはひどい
559: 2016/01/21(木)18:39 ID:eWUPCZWU(2/3) AAS
>>555
そのテーブルをデザインビューで開いたときに、そのフィールのデータ型は何になってる?
フォームでセットとは具体的にどうやってるんだ?
560: 2016/01/21(木)19:53 ID:dhgW0ru6(1/2) AAS
添付ファイル型っていうのがあってだな云々・・・
561: 2016/01/21(木)20:32 ID:xJzWoKjV(1) AAS
> If RS_写真.Fields("FileName") = "" Then
FileData?
データが入ってたらFileNameとは何を指すのだ
562: 2016/01/21(木)20:50 ID:dhgW0ru6(2/2) AAS
フィールドに複数データが入るんだけど、ファイル名とファイル本体がセットになって入るイメージなんじゃないかな。
>>553 は配列のような捉え方で書いてるんだと思う。
フィールドがnullなのかを見ればいいんだろうけど、ファイル名を指定してそのファイル本体の有無を見たいのかな。
でもそれだとファイル名のみがあってファイル本体がないってことがあり得ることが前提になると思うんだけど。
563(1): 2016/01/21(木)21:21 ID:eWUPCZWU(3/3) AAS
添付ファイル型なら
RS_写真のEOFと(MoveLastしてから)RecordCountみれば、添付されてるファイルの件数はわかる
564: 553 2016/01/22(金)16:35 ID:FxZxO26V(1) AAS
皆様、お返事ありがとうございます。
当該フィールドは「添付ファイル」型です。
「添付ファイル」型の写真フィールドは、下位フィールド?として写真.FileData / 写真.FileName / 写真.FileTypeを持っているため、写真.FileNameの有無でNULLか否かを確認しようとしていました。
>>557 さんと >>563 さんのお陰でNULLか否かはRS_写真のEOFを見れば良いだけと気づき、
何とかやりたい操作ができそうです。
この度はご指摘戴き、誠にありがとうございました。
565: 2016/01/28(木)08:27 ID:cOsSJrMS(1/2) AAS
Access2010のVBAの動作にて質問です。
現在クエリのデータをCSV形式にて出力をするために
DoCmd.TransferText acExportDelim, ,
566(1): 2016/01/28(木)09:02 ID:cOsSJrMS(2/2) AAS
途中で切れてしまったので再度質問させていただきます。
Access2010のVBAの動作にて質問です。
現在クエリのデータをCSV形式にて出力をするために
DoCmd.TransferText acExportDelim, ,"クエリ名","出力先\ファイル名.csv"
と言う文を使っているのですが、クエリの行が複数の場合は1行ごとに出力をしたいのですがどうすればよろしいのでしょうか。
567: 2016/01/28(木)09:25 ID:xQdz3S4b(1) AAS
>>566
連続出力するなら
レコードセット開いてレコード毎に書き出しループ
連続出力しないなら
フォーム上の値を参照するパラメータクエリ作って
DoCmd.TransferTextで書き出し
568(1): 2016/02/01(月)21:40 ID:uqBwC27M(1) AAS
ACCESS VBAでoracleのデータを読み書きする場合は
リンクテーブルを作ってやるのが普通でしょうか?
それともリンクせずに直接ORACLEにアクセスするのがよいでしょうか?
569: 2016/02/01(月)22:12 ID:HIlaIvm8(1) AAS
べつにSQL ServerでもORACLEでも同じだとおもうけど
ケースバイケースとしか言えん
570(1): 2016/02/02(火)09:04 ID:nmsl1byO(1/3) AAS
リンク使わないなら別にAccessじゃなくても良いよね、って回答はダメ?
571(1): 2016/02/02(火)10:25 ID:OPpL3JBW(1/3) AAS
ハマってしまいました、cell とoffsetとloopの関係が解明できません。
エクセルデータから一行ずつhtmlファイルを作成するということをしたいです。
minitemplatorを使っています。
試しに3行でつくってみるとファイル名は変わるのですが、
set変数の箇所が一行目のままかわりません。
↓こんなVBAにしてあります
Private Const START_CELL =
572: 2016/02/02(火)10:28 ID:OPpL3JBW(2/3) AAS
すみません
Private Const START_CELL = "T3"
Public Sub PushButton()
'
Dim Cell As Range
Dim Temp As MiniTemplator
Set Temp = New MiniTemplator
省18
573: 571 2016/02/02(火)10:30 ID:OPpL3JBW(3/3) AAS
申し訳ない!accessの方に書き込んでしまいました、excelの方へ移動いたしますorz
574(1): 2016/02/02(火)15:13 ID:ml14fhOB(1/2) AAS
>>570
メインのDBはSQLServerやACCDBだけど、特定のデータだけ
別DBのORACLEからとって来たいなんて要件だったりしたら
ORACLEにリンクテーブル作るほどでは無かったりするかもしれんだろ
575: 2016/02/02(火)15:27 ID:chGMw9p3(1) AAS
これはひどい
576(1): 2016/02/02(火)17:32 ID:nmsl1byO(2/3) AAS
>>574
質問者の質問内容は>>568ですよ〜
577(1): 2016/02/02(火)19:38 ID:ml14fhOB(2/2) AAS
>>576
何が言いたいのかわからん
リンクテーブルかそれ以外でのアクセスかって質問に対して
ACCCESSならリンクテーブル一択だろ、見たいな事を言うから
そうじゃない状況もあるだろって言ってるんだが
578: 2016/02/02(火)22:01 ID:nmsl1byO(3/3) AAS
>>577
質問者はOracleをAccessから操作する場合はどちらかを聞いている訳で
その状況ならリンクで良いんじゃね、と答えただけ
そこにお宅が勘違いして質問にないSQL Server絡めて否定してきたから
ちゃんと質問内容見ろよ、と返しただけ
579(1): 2016/02/03(水)16:11 ID:/VnwDmrp(1) AAS
両成敗
580(1): 2016/02/04(木)08:30 ID:aSn7db66(1) AAS
>>579
うるせぇよ、顔面男性器
581: 2016/02/04(木)15:29 ID:oKzBZVFr(1) AAS
>>580
うん
582(1): 2016/02/07(日)19:26 ID:PcQYM9su(1) AAS
Accessでエクセルファイル読もうと思ってExcelオブジェクトを作成した時、
既にエクセルを立ち上げているとマクロの挙動がおかしくなったり、
あるいは後からエクセルを立ち上げようとするとマクロが終了するまで画面が白いままなのですが、
これを避けてAccess側のみで扱えるエクセルオブジェクトを作ったり、あるいはエクセルと併用したりという事は出来ないでしょうか?
スプレッドシートのインポートは暗号化の影響で上手くいかないので、エクセルオブジェクトを通す必要があります。
583: 2016/02/08(月)15:38 ID:qbvivMLd(1) AAS
>>582
できるよ
584: 2016/02/08(月)18:15 ID:V9YCd2yR(1) AAS
つか普通にやればそうなってたと思ったけど
CreateObjectって、インスタンスあったらそれ掴んで返すのか?
585(1): 2016/02/10(水)00:18 ID:SmKUXNow(1) AAS
vbaでも知りたいのですが、accessで列見出しを行見出しにするには、どんなコードを書けばいいでしょうか?クロス集計ではできませんでした。
586: 2016/02/10(水)09:07 ID:FkM1RfeE(1) AAS
>>585
行列入替えがしたいっての?それ、データベースのルールに反してる
わけだが。
クロス集計クエリの場合にはデータ元がきちんとクロス集計できる形に
なっていれば、できないということはない。
587(2): 2016/02/22(月)10:46 ID:4/RFA0DI(1/2) AAS
金はあるけど時間がない
経験値100倍くらいになる課金ないんか
588: 2016/02/22(月)10:47 ID:4/RFA0DI(2/2) AAS
すまん
誤爆った
589: 2016/02/22(月)12:20 ID:Y1bHL8fN(1) AAS
>>587
それな
590: 2016/02/22(月)12:21 ID:GAqrdc9h(1) AAS
>>587
あえて、経験値にした辺りに謙虚さがあるな
俺だったら、最初からスキルボックス(中身はランダム)みたいな課金する。
591: 2016/02/22(月)18:37 ID:QLpZ1xcH(1) AAS
うざ
592(1): 2016/02/24(水)23:35 ID:UmTzYcDx(1) AAS
日常的にAccessのピボットテーブルをCtrl+A Ctrl+Cして
Excelに貼り付けてるんですが
これをVBAできませんでしょうか
593(1): 2016/02/25(木)10:52 ID:xnX4JkuY(1) AAS
できますん
594: 2016/02/25(木)13:16 ID:W1s9bb7v(1) AAS
>>592
Googleスプレッドシートは簡単に関数でソレが実現できます。
ちなみに、Accessでは「貼り付ける」行為は出来なくはないです。ただ、オートメーションでやる
ならそういうことになりますが、普通はExcel上でピボットを作成スべきでしょう。
595: 2016/02/25(木)22:25 ID:DG6YFXpT(1) AAS
>>593
もうすこしヒントを
どのオブジェクトプロパティをいじればいいとか
596: 2016/02/26(金)15:13 ID:VQGl6zaq(1) AAS
VBAで
597: 2016/02/26(金)18:31 ID:A3HYqZte(1) AAS
全選択なら単にエクセルにエクスポートすればいいんじゃないの?
598: 2016/03/04(金)22:35 ID:KUnf3VuC(1) AAS
質問 Access2010
突然、フォームのデータシートビューで列を入れ替えてもその状態が保存されないようになってしまいました。
いろいろと原因を調べてみるとOpenやLoadイベントでフィルター設定を行うとそんなトラブルが起こってしまうようなのです。
Private Sub Form_Open(Cancel As Integer)
Me.Filter = "ID>3" '例
Me.FilterOn = True
End Sub
省3
599: 2016/03/24(木)22:15 ID:aSgI1iJJ(1/2) AAS
access 2010
windows7
DoCmd.OutputTo acReport,
600: 2016/03/24(木)22:16 ID:aSgI1iJJ(2/2) AAS
access 2010
windows7
DoCmd.OutputTo acReport, "hoge_table", acFormatXLS, "C:\hoge.xls"
レポートファイルをxlsへ出力するときに
「実行時エラー 2587 出力が完了できません」が
出てきてしまいます。
実行時エラー2587を検索しても情報が出てこない為、
省4
601: 2016/03/25(金)13:31 ID:ctOehyRA(1) AAS
プリンタが変わった レポートの書式が変わった(文字コード系)
再インストールで復帰した というようなresが 英語のフォーラムだけど
手動でエクスポートした場合も同じエラーかどうか
ん?レポートファイルをxlsへ? "hoge_table" テーブルをxlsへの間違い?
テーブルをcsv出力してxlsなら? とかいろいろ
上下前次1-新書関写板覧索設栞歴
あと 401 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.032s