[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2ch.scのread.cgiへ]
Update time : 02/26 17:50 / Filesize : 273 KB / Number-of Response : 1044
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

Access VBA 質問スレ Part1



1 名前:デフォルトの名無しさん mailto:sage [2012/02/06(月) 22:53:46.88 .net]
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
toro.2ch.net/test/read.cgi/tech/1327763113/l50


477 名前:デフォルトの名無しさん mailto:sage [2015/10/28(水) 22:29:42.64 ID:mlOdASO2.net]
結局のところAccessが担当してた部分ってETLツールに置き換えられてきてるってことかな?入力は除いてだけど。

478 名前:デフォルトの名無しさん mailto:sage [2015/10/29(木) 10:20:50.66 ID:olmk/SiV.net]
何が結局のところだよ
ETL言いたいだけちゃうんかと
そもそもAccessでビッグデータなんか扱えくぇrちゅいおpsdfg

479 名前:デフォルトの名無しさん mailto:sage [2015/10/29(木) 23:09:13.90 ID:yeCeSffg.net]
>>459
h?

480 名前:デフォルトの名無しさん mailto:sage [2015/10/29(木) 23:46:52.13 ID:+ZsDxL5P.net]
Forguncyに流れちゃった人いる?

481 名前:デフォルトの名無しさん mailto:sage [2015/10/29(木) 23:50:41.92 ID:+ZsDxL5P.net]
>>460
人それぞれだと思うが、おいらの使い方ならビックじゃないデータでもETLは結構いい選択肢だと思たあるよ
定形業務にはいいんじゃないか?

482 名前:デフォルトの名無しさん [2015/10/30(金) 15:53:29.13 ID:ijicNSnW.net]
あるレポートが、あるクエリを元に作成されていて、そのクエリのレコード毎に、レポートをPDF出力し、出力先はまた別のクエリのフルパス文字内との元クエリデータとの一致で決めたいのですが、ご教示いただけないでしょうか?

483 名前:デフォルトの名無しさん mailto:sage [2015/10/30(金) 15:57:13.83 ID:o6oPjLK7.net]
>>464
どこまで出来てて何がわからんのだ?

484 名前:デフォルトの名無しさん [2015/10/30(金) 19:35:33.54 ID:Y9M2GM2T.net]
>>465
レポートをレコード毎にPDF出力して、クエリにあるパスに保存するところ

485 名前:デフォルトの名無しさん mailto:sage [2015/10/31(土) 02:10:26.31 ID:CVsb3S4r.net]
どこまで出来てるんだ



486 名前:デフォルトの名無しさん mailto:sage [2015/10/31(土) 03:08:21.25 ID:CVsb3S4r.net]
>>466
「MS-Accessのレポートをページ毎にPDF化する」でググって一番上のページ
そこみて、わからないとこは自分で勉強してくれ

487 名前:デフォルトの名無しさん mailto:sage [2015/11/01(日) 03:17:03.71 ID:MNp+RCAH.net]
>>466
あのさ、ここはお前の願望を叶えるスレじゃないの。
わからない所を聞く為のスレなわけ。

お前のそれは1機能まるごと作ってここにコード貼れって命令してるに過ぎない。自分でコードもはらずにね。

488 名前:デフォルトの名無しさん [2015/11/04(水) 20:19:18.57 ID:jMb6JFTC.net]
VBAでSELECT文を作って、Formに渡してRequeryして結果を表示しています。
テキストボックスに表示するテキストデータが途中で切れているという現象がおきました。
別のフォームで同じデータを同じようにテキストボックスに表示させると、全部のデータがきちんと表示されます。
スクロールとかではありません。文字列がぶつっ!と切れて途中までしか表示されないのです。

この現象の原因とかわかる人いますでしょうか?

489 名前:デフォルトの名無しさん mailto:sage [2015/11/04(水) 21:27:15.64 ID:oSFsMrp6.net]
>>470
なぞなぞかよっ!w
テキストボックスのプロパティを良く見た?

490 名前:デフォルトの名無しさん mailto:sage [2015/11/05(木) 11:16:36.84 ID:AOwzRWVn.net]
>>470
そおテキストボックスどっかからコピペしてきたと見た

491 名前:デフォルトの名無しさん [2015/11/05(木) 19:21:36.55 ID:zgwRgbI3.net]
>>471,>>472
表示ができているテキストボックスと同じプロパティです。
でも、1000件データのうち、1つだけ200文字くらいの文字列なんですが、100文字くらいの
ところでブツッ!って切れてるんです。
他のデータで同じくらいのサイズの文字列は問題なく表示されています。
SQLが悪いのかと思って、Debug.PrintしてSQLを取り出して、クエリを実行してみると、ちゃんと文字列が全部表示されています。
文字コードかなんかでしょうか?
でも、同じ文字列を別のフォームにあるテキストボックスで表示可能なんです。(ToT)

492 名前:デフォルトの名無しさん mailto:sage [2015/11/05(木) 19:22:59.62 ID:I4yBwlZm.net]
>>473
同じ方法で出してるの?
ヌル文字ってVBAは関係なかったっけ?

493 名前:デフォルトの名無しさん [2015/11/05(木) 19:44:01.06 ID:zgwRgbI3.net]
SQLは、違います。
あぁ・・・・その実験やってなかった・・・。
やってから報告します・・・。

494 名前:デフォルトの名無しさん mailto:sage [2015/11/05(木) 19:53:07.35 ID:tNVJsXcL.net]
VBAの文字列はヌル文字ではターミネートされない
改行とか入って、見えなくなってるだけとかじゃないのか

495 名前:デフォルトの名無しさん mailto:sage [2015/11/06(金) 09:46:24.95 ID:rpsHbqpr.net]
union

union all
にしたら現象がでなくなりました。
(ヽ´ω`)でもクエリデザインから実行するとunionでも普通に表示されるんだよなぁ、、、



496 名前:デフォルトの名無しさん mailto:sage [2015/11/06(金) 10:26:38.77 ID:iLvLfKdX.net]
>>477
重複業があるんじゃないの?
目視で見てるのは違う行とかないよね。

497 名前:デフォルトの名無しさん [2015/11/06(金) 12:39:06.37 ID:F7EIvq3A.net]
test

498 名前:デフォルトの名無しさん mailto:sage [2015/11/06(金) 17:29:52.25 ID:FW411vzH.net]
>>478
質疑回答IDも一致してて、単純なSELECTぶんなので、、
超レアなバグなのかなと

499 名前:デフォルトの名無しさん mailto:sage [2015/11/06(金) 19:16:39.01 ID:hUa1dWCf.net]
メモ型あたりでunionの同一行判定でなんかあるかもしれんけど
どう考えても>>480の勘違いの可能性の方か高いと思うぞ

まあACCESSのバージョンもテーブルの種類もSQLもデータをどうやって表示してるかも書かんような奴の話は
聞くだけ無駄かもしれん

500 名前:デフォルトの名無しさん mailto:sage [2015/11/06(金) 19:41:20.27 ID:hUa1dWCf.net]
メモ型ってgroup by 出来なかった気がしたのでちょっと調べた
どうも、TEXT型にキャストして判定するみたいだな
なので、255文字目までが同一のメモ型は同一と判定される

distinctで採択されるのがどっちの行かはわからんが
とりあえずメモ型の制限だからメモ型使って値操作するのが悪いと言う結論だな

個人的にはエラーにしてほしいところだし、昔はエラーになってた気がするんだが俺の気のせいだろうか

501 名前:デフォルトの名無しさん mailto:sage [2015/11/06(金) 19:56:07.21 ID:hUa1dWCf.net]
あと、unionは単純なSQLとは言えんし
はなからunionしてるSQLとテーブルレイアウト出してればもっと解決早かっただろうに
全く同じ現象出てるって書いてるブログあるぞ

502 名前:デフォルトの名無しさん mailto:sage [2015/11/07(土) 13:41:21.41 ID:Lam93S6q.net]
あのっ某所でAccessはフロントエンドのみの製品で
RDB自体はOS標準で使えますぜgff・・・
みたいな内容見たんだけど
本当なんです?

503 名前:デフォルトの名無しさん [2015/11/07(土) 16:11:16.86 ID:rKOE1Rwz.net]
yes

504 名前:デフォルトの名無しさん [2015/11/07(土) 17:29:39.50 ID:D4Pma+c4.net]
>>484
んだ。
だから、ExcelがあればVBAで組める人がいるなら、ぶっちゃけいらん。

505 名前:デフォルトの名無しさん [2015/11/07(土) 17:54:57.33 ID:nFXrQ+Fm.net]
OSに標準でついてるRDBってなんのこと??



506 名前:デフォルトの名無しさん mailto:sage [2015/11/07(土) 18:34:51.46 ID:eMujCaYk.net]
RDBは付いてないでしょう

507 名前:デフォルトの名無しさん mailto:sage [2015/11/07(土) 19:25:43.69 ID:Lam93S6q.net]
ちゅーかVBScriptからもいけるじゃん
後付けコンポーネントってわけでもなさそうだし
Officeいらないのかもしかして

508 名前:デフォルトの名無しさん [2015/11/07(土) 19:37:37.20 ID:sBJO9RQ1.net]
SQLサーバのこといってんの?

509 名前:デフォルトの名無しさん mailto:sage [2015/11/07(土) 19: ]
[ここ壊れてます]

510 名前:39:42.37 ID:Lam93S6q.net mailto: >>487-488
>Jetデータベースエンジンとは、Microsoft社が開発したリレーショナルデータベースエンジン。Microsoft Access用に開発されたもので、現在ではWindowsに統合され、様々な製品から利用されている。
だそうですよ
[]
[ここ壊れてます]

511 名前:デフォルトの名無しさん [2015/11/07(土) 19:47:42.23 ID:sBJO9RQ1.net]
>>491
トン
jetってAccess買わなくてもつかえるんだ。
ランタイムはしってたけど

512 名前:デフォルトの名無しさん mailto:sage [2015/11/07(土) 20:47:46.88 ID:nqO+al0X.net]
windowsに統合されたjetの使い方はどうすれば?

513 名前:デフォルトの名無しさん [2015/11/07(土) 22:03:40.43 ID:cyCg/fRc.net]
レポートをレコードごとに、pdf出力したく
daoで以下のような感じで書いたんだが。
ファイルのフルパスが書いてある別クエリの中のレコードとレポートの項目が合致するレコードのフルパスにpdfを出力したいんだがどうしたらいいのかわからない。

Do Until rs.EOF
DoCmd.OpenReport 〜
DoCmd.OutputTo acOutputReport, , acFormatPDF, "ファイルパス.pdf"
DoCmd.Close acReport, レポート名
rs.MoveNext
Loop

514 名前:デフォルトの名無しさん mailto:sage [2015/11/07(土) 22:57:08.01 ID:uMO3Ng54.net]
SQL書いてそれをレコードセットに入れたら?

515 名前:デフォルトの名無しさん mailto:sage [2015/11/08(日) 02:11:48.41 ID:WbD4bkmm.net]
JETだけでDB組むとか何の拷問だよ
素直にAccess使え



516 名前:デフォルトの名無しさん mailto:sage [2015/11/08(日) 12:15:44.95 ID:GC9rkdcu.net]
Pythonで書いても楽

517 名前:デフォルトの名無しさん [2015/11/08(日) 13:04:28.61 ID:iWdr+l4l.net]
で、Accessって
何に使えばいいの?
(´・ω・`)

518 名前:デフォルトの名無しさん mailto:sage [2015/11/08(日) 14:01:11.47 ID:LxG8VZT7.net]
>>498
一人で完結する仕事で面倒臭くて外注する予算もなくてなことを
自動化するのに使ってるよ。だから保守も自分でしかできない(笑)
そんな仕事じゃないか?

519 名前:デフォルトの名無しさん [2015/11/08(日) 15:13:38.10 ID:QfP+cajQ.net]
社内の統計担当とかそんなポジションの人かな?
社内の簡単な統計ならほんと楽ちん。
Access使えるか使えないかでどえらい作業能力の差が生まれる。

520 名前:デフォルトの名無しさん mailto:sage [2015/11/08(日) 18:18:56.29 ID:dBATCu8V.net]
m9 pgr

521 名前:デフォルトの名無しさん mailto:sage [2015/11/10(火) 21:11:26.36 ID:Ya5Yiifl.net]
>>501
それは何?

522 名前:デフォルトの名無しさん mailto:sage [2015/11/11(水) 13:15:07.58 ID:vGX0No5x.net]
むきゅー
ぷぎゃー

523 名前:sage [2015/11/11(水) 19:27:14.97 ID:V8OM9GuG.net]
access2013でフォームからの入力期間の金額を集計してレポート作成をしようとしています。
vbaでリボンにあるレポートボタンを押下した動作と同じコードは存在しますでしょうか。

524 名前:デフォルトの名無しさん mailto:sage [2015/11/11(水) 20:31:20.16 ID:RY0eiki2.net]
マクロの操作を記録すれば出てくるでしょ

525 名前:デフォルトの名無しさん mailto:sage [2015/11/11(水) 22:30:56.87 ID:/+peIgnx.net]
>>505
ACCESSにマクロの記録は無かったと思ったが
2013とかだと出来るようになってるのか?



526 名前:デフォルトの名無しさん mailto:sage [2015/11/11(水) 22:51:22.82 ID:oO+3Zy7C.net]
無いと思うよ

527 名前:デフォルトの名無しさん mailto:sage [2015/11/11(水) 22:55:33.44 ID:51LqdR7k.net]
vba レポートでくぐったがはやいよ。

528 名前:デフォルトの名無しさん mailto:sage [2015/11/12(木) 04:28:05.37 ID:MeI9ns/Z.net]
>>505
は?馬鹿はいちいちスレに出張って来るなよww
何がマクロの操作を記録だ馬鹿が。

529 名前:デフォルトの名無しさん mailto:sage [2015/11/12(木) 12:35:52.00 ID:pHlRdfiq.net]
普通にフォームと同じソースの「れぽーとほげ」を用意しておいて

DoCmd, OpenReport "れぽーとほげ", acViewPreview
ではダメな理由があるのかな? フォーム上でレポートに応用できるように画面設計
作り込むよりは専用のレポートで別制作しといたほうが何十倍も効率いいだろうにな

530 名前:デフォルトの名無しさん mailto:sage [2015/11/12(木) 12:42:12.51 ID:tbcgbggA.net]
>>504

531 名前:
ちょっと出来ない事があるとVBAに頼るのはよくない。
Officeの使い方をもっと勉強してからVBAに手を出すべきだよ。

「パラメータクエリ」と「フォーム」で作ればなんとかなるかな。
というわけで、VBA必要ないので↑の2つのキーワードでggrks
[]
[ここ壊れてます]

532 名前:511 mailto:sage [2015/11/12(木) 12:43:58.58 ID:tbcgbggA.net]
パラメータクエリとレポートでも作れるわ。

533 名前:デフォルトの名無しさん mailto:sage [2015/11/12(木) 14:18:08.75 ID:Cdboni3Z.net]
フォームからfrom日付-to日付を入力

テーブルから購入日が対象範囲のデータ取得
テーブル構造は
シーケンスno.,氏名,購入品1,購入日1(購入日、購入品は6まで存在)

クロス集計にて月毎の金額を集計

レポートに出力

入力する日付によってフィールド数が可変なため、レポートの作成はしていないです。
vbaを使う必要がなく可変レポートが作成出来るならスルーして下さい

534 名前:デフォルトの名無しさん mailto:sage [2015/11/12(木) 15:03:31.62 ID:m1A4y0ZB.net]
>>513
クエリ作っときゃいいんじゃないの?集計の。
フィールド数が可変とはなんぞ。

535 名前:511 mailto:sage [2015/11/12(木) 16:03:58.58 ID:tbcgbggA.net]
>>513
テーブルの基本設計からやり直せ。
購入品と購入日が1〜6って無いと思います。



536 名前:デフォルトの名無しさん mailto:sage [2015/11/12(木) 16:36:07.67 ID:Cdboni3Z.net]
>>515
くそなテーブルだと思ってますが自分が作ったテーブルではないので変更出来ません

537 名前:511 mailto:sage [2015/11/12(木) 16:42:28.68 ID:tbcgbggA.net]
>>516
レポート用にテーブル作っちゃうことはできないの?

538 名前:デフォルトの名無しさん mailto:sage [2015/11/12(木) 16:43:56.03 ID:m1A4y0ZB.net]
>>516
だからクエリ作れよ。
select id,1 as 区分,氏名,購入日1 as 購入日,購入品1 as 購入品
union
select id,2 as 区分,氏名,購入日2 as 購入日,購入品2 as 購入品
:
select id,6 as 区分,氏名,購入日6 as 購入日,購入品6 as 購入品
で、あとはそれに対して、fromToでフィルタ掛ければいいんでないの?

539 名前:デフォルトの名無しさん mailto:sage [2015/11/12(木) 16:44:59.17 ID:Cdboni3Z.net]
>>514
入力した期間に応じて月が増減します
i.imgur.com/gnTtfzv.jpg

集計用のクエリは作成したのでリボンにあるレポートボタン同様に自動でリポート作成出来ないかと思ってます

540 名前:デフォルトの名無しさん mailto:sage [2015/11/12(木) 16:47:06.72 ID:m1A4y0ZB.net]
>>519
帳票一枚に並べられる分の月数を元からつくっとけ。

541 名前:デフォルトの名無しさん mailto:sage [2015/11/12(木) 17:02:23.22 ID:Cdboni3Z.net]
>>517
くえりをそのままレポートは難しそうだったのでテーブル化はしてあります

542 名前:デフォルトの名無しさん [2015/11/13(金) 20:45:36.98 ID:7WxIZdrP.net]
複雑になってるクエリが循環参照になってるようなのだが、読み解かずにテーブル作成して逃げようとしたらまたエラーなんとかならんかなー

543 名前:デフォルトの名無しさん mailto:sage [2015/11/13(金) 20:51:20.52 ID:etlrmpjh.net]
>>519
クエリ出来てるなら、レポート作って保存しておけば好きなときに開くだけじゃん

544 名前:デフォルトの名無しさん mailto:sage [2015/11/13(金) 22:14:56.04 ID:fKrJSaVy.net]
vbaでfilecopy(fsoも含む)でリムーバブルディスクにファイルをコピーするとハードウェアの安全な取り外しで
ファイルが使用中とかでできない。まぁ警告のダイアログで続行を押すと取り外せるんだけど、これやると
マイコンピュータからリムーバブルディスクが消えなかったりすることがある。
accessを終了すると普通に取り外せるんだけど、これをなんとかできないかなぁ。

545 名前:デフォルトの名無しさん mailto:sage [2015/11/14(土) 00:03:58.17 ID:Q8aVOdfz.net]
>>524
Fsoでやるなら、
宣言で as new ...とかしない、最後にNothing入れとくを徹底したら無くなるんじゃないかな。



546 名前:デフォルトの名無しさん mailto:sage [2015/11/14(土) 00:13:34.12 ID:YdrOLc06.net]
カレントフォルダとカレントドライブを明示的に
リムーバブルじゃないとこに設定してやれば行ける見たいな事を聞いたことがある

547 名前:デフォルトの名無しさん mailto:sage [2015/11/14(土) 07:50:49.05 ID:ZUqvxiq2.net]
>>524
それ、使用したメソッドがファイル掴んだままで、開放してないからでしょ。ちゃんとプログラミングのイロハ身につけてたらやらない。

使ったら

548 名前:必ず開放する。VBAユーザはなぜか使いっぱなしが多い。 []
[ここ壊れてます]

549 名前:デフォルトの名無しさん mailto:sage [2015/11/14(土) 08:28:36.61 ID:f21e1kim.net]
.NETなんかだとマネージドは書いてもほぼ意味なかったりで使いっ放し推奨

550 名前:524 mailto:sage [2015/11/14(土) 10:27:44.88 ID:c/SicAL6.net]
>>525、527
Dim objFileSys As Object
Set objFileSys = CreateObject("Scripting.FileSystemObject")
objFileSys.CopyFile 元ファイル, コピー先フォルダ & "\"
Set objFileSys = Nothing
copyfileの部分だけをかいつまんで書くとこんな感じだけど、解放の仕方を教えてくれないか。
リムーバブルディスクにコピーしたファイルは開けるし削除もできるからロックされた感じじゃないんだよね。
安全なハードウェアの取り外しだけがうまくいかないんだよ。

551 名前:デフォルトの名無しさん mailto:sage [2015/11/14(土) 11:01:39.40 ID:ajpWryyv.net]
getdriveとか適当なのを実行してみたら?
カレントが移動するかも。

552 名前:524 mailto:sage [2015/11/14(土) 12:52:04.15 ID:c/SicAL6.net]
>>526、530
ありがとう。この方法で解決した。
ChDrive "c" って1行追加しただけでOKでした。言われないと気付かなかったから助かりました。
他のみなさんもありがとう。

553 名前:デフォルトの名無しさん mailto:sage [2015/12/06(日) 22:14:00.95 ID:ZiGqGoDJ.net]
重複した文言の多いcsvファイルの情報を読み込む時に、重複しない文言を蓄えたテーブルと、
文言テーブルのIDだけを入力したテーブルに分けて管理する事で容量を節約しようと思ってるんですが、
人が読める様にIDから元の文言を復元したテーブルを作りたいと思った時、
VBAで文言一つ一つ代入したテーブルを新たに作るしかないですかね?

554 名前:デフォルトの名無しさん mailto:sage [2015/12/07(月) 01:08:03.51 ID:D3MoacxB.net]
IDでテーブル結合したview作るなりクエリにすりゃいいんじゃないの
どちらにしろVBAとか関係ないと思う

555 名前:デフォルトの名無しさん mailto:sage [2015/12/10(木) 11:46:09.31 ID:V//Y2NlP.net]
質問です
Access2007ファイルのショートカットをデスクトップに作ろうと思って

https://www.moug.net/tech/acvba/0020025.html

ここを参考にパスとかだけ変えて作ったんだけど、ショートカットが作成されません
解決策教えてください



556 名前:デフォルトの名無しさん mailto:sage [2015/12/10(木) 12:16:08.88 ID:gg94mj0B.net]
うちはできたよ

557 名前:534 mailto:sage [2015/12/11(金) 16:06:56.86 ID:UbN3V6OX.net]
出来ました。

558 名前:デフォルトの名無しさん mailto:sage [2016/01/04(月) 04:37:40.84 ID:KKPx2R3A.net]
mdbファイルのテーブル構造をADO.NET SqlCommandで取り出す方法を知りたいです。(データ定義言語的な取り出し)
DoCmd.TransferDatabase acExportでできるテーブル構造のコピーと同じことを,ADO.NETで,元データなしで実現(テーブル生成)したり
プログラム側が想定するテーブル構造と一致するか確認する処理をテーブル生成→比較とすることで一般化したりしたいのですが

559 名前:デフォルトの名無しさん [2016/01/04(月) 18:57:08.11 ID:uh/Y4MEw.net]
ADODBEX

560 名前:デフォルトの名無しさん mailto:sage [2016/01/09(土) 22:01:59.03 ID:ytxGXkKI.net]
Accessでプロマネの仕事頼まれたけど断ったわ
もうVisualStudioが無いと何もできない体になってしまった

561 名前:デフォルトの名無しさん mailto:sage [2016/01/10(日) 01:26:39.26 ID:0BvJ+8Ai.net]
プロマネの仕事は開発じゃない、とつっこみ

562 名前:デフォルトの名無しさん mailto:sage [2016/01/11(月) 08:38:46.37 ID:grtS6L7L.net]
>>540
そういういかにも日本的で世界で通用しない回答は誰も期待していないし、
君みたいな奴は誰も求めていない。

563 名前:デフォルトの名無しさん mailto:sage [2016/01/11(月) 17:35:29.30 ID:ErJJ4Q3v.net]
>>541
君には悲しいかもしれないけど、ここ日本なのよね

564 名前:デフォルトの名無しさん mailto:sage [2016/01/14(木) 21:12:26.51 ID:RI ]
[ここ壊れてます]

565 名前:YdCmvc.net mailto: テーブルにインポートするとたまに失敗する変なゴミデータが入ったエクセルファイルをVBAでテーブルに登録しようとしてます。1レコード100フィールドほどあるもので、addnewで登録すると100件で20秒ほど掛かってしまいます。
Insertでも23秒でした。
全部で10万件あるのですが、高速登録する方法ないでしょうか?
[]
[ここ壊れてます]



566 名前:デフォルトの名無しさん mailto:sage [2016/01/14(木) 22:01:16.12 ID:fK8eMzuy.net]
>>543
配列で受けると速くなるかもしれない
dim ary as variant
ary = Range("A1").CurrentRegion.value ' 1オリジンの2次元配列

567 名前:デフォルトの名無しさん mailto:sage [2016/01/14(木) 22:04:06.66 ID:fK8eMzuy.net]
ゴミは数式やエラー値が混ざってるんだろうから配列にした段階で適当に変換する
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
この後でテーブル登録する

568 名前:デフォルトの名無しさん mailto:sage [2016/01/14(木) 23:52:25.44 ID:SY7xxp+v.net]
>>543
パフォーマンス重視ならレコードセットやExcelオブジェクトは扱わない方が良いですよ
1.インポート定義でインポート
2.リンクテーブルを作って追加クエリ
3.SQL の IN 句使って INSERT
4.OLE DB の Jet か ACE で接続して INSERT
などなど...

ゴミが混ざるならゴミを許容する作業テーブルにインポートしてから後始末をするとか
処理の仕方も色々あると思います、頑張ってください

569 名前:デフォルトの名無しさん mailto:sage [2016/01/14(木) 23:55:58.95 ID:SY7xxp+v.net]
書き忘れ
インポート定義は文字列切り詰めなどが起きるかもしれないので
使うなら想定しておいた方が良いです

570 名前:デフォルトの名無しさん mailto:sage [2016/01/15(金) 00:07:44.49 ID:obwNql4P.net]
レコード長とかPCのスペックとかもわからんが
コードでもっと早くできる余地がいっぱいある気がするぞ

というか、純粋な追加で時間かかってるのか?
エラーチェックに時間かかってるんじゃないのか

571 名前:デフォルトの名無しさん mailto:sage [2016/01/17(日) 14:16:21.53 ID:A2o/pomn.net]
access2013の質問がしたいのですがここでは不可でしょうか?探してもスレが見つからなかったので誘導していただけないでしょうか?

572 名前:デフォルトの名無しさん [2016/01/17(日) 18:47:14.28 ID:wzxdIUIG.net]
聞くがよい

573 名前:デフォルトの名無しさん mailto:sage [2016/01/18(月) 17:00:22.89 ID:cbTDZ81K.net]
Access総合相談所 27
peace.2ch.net/test/read.cgi/bsoft/1424828244/

574 名前:デフォルトの名無しさん mailto:sage [2016/01/20(水) 21:12:14.20 ID:b2HKKJl2.net]
access 2013での質問です。
テーブルAの構成要素は【id(オートナンバー)、写真(添付ファイルで複数値を持つフィールド)】となっております。

この状態で、テーブルAの任意のIDに写真が入っているか否かを確認したいと考えております。
今のところ
dim RS As DAO.Recordset2
set RS = CurrentDb.OpenRecordset(

575 名前:デフォルトの名無しさん mailto:sage [2016/01/20(水) 21:13:28.67 ID:b2HKKJl2.net]
すみません、途切れました

set RS = CurrentDb.OpenRecordset("テーブルA")

With RS
.FindFirst "id = ○"
End With

で任意のIDに移動できるのですが、そこから写真フィールドにデータが入っているか否かをどのように確認したら良いかが分かりません。

一応複数値を持つフィールドということから
Dim RS_写真 As DAO.Recordset2
Set RS_写真 = RS.Fields("写真").Value
と代入し、
If RS_写真.Fields("FileName") = "" Then
 MsgBox "hoge"
End If

というように、if分を使ってみたのですが、上手く行きません。

お忙しいところ恐縮ですが、アドバイスを戴けると幸いです。



576 名前:デフォルトの名無しさん mailto:sage [2016/01/21(木) 00:33:33.20 ID:eWUPCZWU.net]
添付ファイルで複数値を持つフィールド ってのがよく

577 名前:からん
そのフィールドのデータ型と
実際に内容をセットしてるコード出してみ
[]
[ここ壊れてます]






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<273KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef