Access VBA 質問スレ Part1 at TECH
Access VBA 質問スレ Part1 - 暇つぶし2ch524:デフォルトの名無しさん
15/11/11 20:31:20.16 RY0eiki2.net
マクロの操作を記録すれば出てくるでしょ

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

526:デフォルトの名無しさん
15/11/11 22:51:22.82 oO+3Zy7C.net
無いと思うよ

527:デフォルトの名無しさん
15/11/11 22:55:33.44 51LqdR7k.net
vba レポートでくぐったがはやいよ。

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

529:デフォルトの名無しさん
15/11/12 12:35:52.00 pHlRdfiq.net
普通にフォームと同じソースの「れぽーとほげ」を用意しておいて
DoCmd, OpenReport "れぽーとほげ", acViewPreview
ではダメな理由があるのかな? フォーム上でレポートに応用できるように画面設計
作り込むよりは専用のレポートで別制作しといたほうが何十倍も効率いいだろうにな

530:デフォルトの名無しさん
15/11/12 12:42:12.51 tbcgbggA.net
>>504


531: ちょっと出来ない事があるとVBAに頼るのはよくない。 Officeの使い方をもっと勉強してからVBAに手を出すべきだよ。 「パラメータクエリ」と「フォーム」で作ればなんとかなるかな。 というわけで、VBA必要ないので↑の2つのキーワードでggrks



532:511
15/11/12 12:43:58.58 tbcgbggA.net
パラメータクエリとレポートでも作れるわ。

533:デフォルトの名無しさん
15/11/12 14:18:08.75 Cdboni3Z.net
フォームからfrom日付-to日付を入力

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

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

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

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

535:511
15/11/12 16:03:58.58 tbcgbggA.net
>>513
テーブルの基本設計からやり直せ。
購入品と購入日が1~6って無いと思います。

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

537:511
15/11/12 16:42:28.68 tbcgbggA.net
>>516
レポート用にテーブル作っちゃうことはできないの?

538:デフォルトの名無しさん
15/11/12 16:43:56.03 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:デフォルトの名無しさん
15/11/12 16:44:59.17 Cdboni3Z.net
>>514
入力した期間に応じて月が増減します
URLリンク(i.imgur.com)
集計用のクエリは作成したのでリボンにあるレポートボタン同様に自動でリポート作成出来ないかと思ってます

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

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

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

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

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

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

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

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


548:必ず開放する。VBAユーザはなぜか使いっぱなしが多い。



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

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

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

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

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

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

555:デフォルトの名無しさん
15/12/10 11:46:09.31 V//Y2NlP.net
質問です
Access2007ファイルのショートカットをデスクトップに作ろうと思って
URLリンク(www.moug.net)
ここを参考にパスとかだけ変えて作ったんだけど、ショートカットが作成されません
解決策教えてください

556:デフォルトの名無しさん
15/12/10 12:16:08.88 gg94mj0B.net
うちはできたよ

557:534
15/12/11 16:06:56.86 UbN3V6OX.net
出来ました。

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

559:デフォルトの名無しさん
16/01/04 18:57:08.11 uh/Y4MEw.net
ADODBEX

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

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

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

563:デフォルトの名無しさん
16/01/11 17:35:29.30 ErJJ4Q3v.net
>>541
君には悲しいかもしれないけど、ここ日本なのよね

564:デフォルトの名無しさん
16/01/14 21:12:26.51 RI


565:YdCmvc.net



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

567:デフォルトの名無しさん
16/01/14 22:04:06.66 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:デフォルトの名無しさん
16/01/14 23:52:25.44 SY7xxp+v.net
>>543
パフォーマンス重視ならレコードセットやExcelオブジェクトは扱わない方が良いですよ
1.インポート定義でインポート
2.リンクテーブルを作って追加クエリ
3.SQL の IN 句使って INSERT
4.OLE DB の Jet か ACE で接続して INSERT
などなど...
ゴミが混ざるならゴミを許容する作業テーブルにインポートしてから後始末をするとか
処理の仕方も色々あると思います、頑張ってください

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

570:デフォルトの名無しさん
16/01/15 00:07:44.49 obwNql4P.net
レコード長とかPCのスペックとかもわからんが
コードでもっと早くできる余地がいっぱいある気がするぞ
というか、純粋な追加で時間かかってるのか?
エラーチェックに時間かかってるんじゃないのか

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

572:デフォルトの名無しさん
16/01/17 18:47:14.28 wzxdIUIG.net
聞くがよい

573:デフォルトの名無しさん
16/01/18 17:00:22.89 cbTDZ81K.net
Access総合相談所 27
スレリンク(bsoft板)

574:デフォルトの名無しさん
16/01/20 21:12:14.20 b2HKKJl2.net
access 2013での質問です。
テーブルAの構成要素は【id(オートナンバー)、写真(添付ファイルで複数値を持つフィールド)】となっております。
この状態で、テーブルAの任意のIDに写真が入っているか否かを確認したいと考えております。
今のところ
dim RS As DAO.Recordset2
set RS = CurrentDb.OpenRecordset(

575:デフォルトの名無しさん
16/01/20 21:13:28.67 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:デフォルトの名無しさん
16/01/21 00:33:33.20 eWUPCZWU.net
添付ファイルで複数値を持つフィールド ってのがよく�


577:墲ゥらん そのフィールドのデータ型と 実際に内容をセットしてるコード出してみ



578:デフォルトの名無しさん
16/01/21 07:45:42.44 7TL6zMKQ.net
>>554
お返事ありがとうございます。
TABLEAのフィールド"写真"にデータをセットするのはフォーム上で行っております。
MsgBox TypeName(.Fields("写真")) で確認をしてみたところ、
Field2 オブジェクト (DAO)
URLリンク(msdn.microsoft.com)
と返ってきました。
これで伝わりますでしょうか?

579:デフォルトの名無しさん
16/01/21 12:58:17.49 zpe1QHZ3.net
伝わったが答える気にはならなかった

580:デフォルトの名無しさん
16/01/21 13:50:34.34 tpiDrCnM.net
テーブルAのあるレコードでは【写真】に外部からデータが入っていて,違うレコードでは入っていないから,それを確認したいということ?
RS_写真のeofとbofを調べれば良いだけだと思う.
URLリンク(msdn.microsoft.com)
ここにサンプルが有るから頑張って

581:デフォルトの名無しさん
16/01/21 15:33:43.41 zpe1QHZ3.net
これはひどい

582:デフォルトの名無しさん
16/01/21 18:39:11.58 eWUPCZWU.net
>>555
そのテーブルをデザインビューで開いたときに、そのフィールのデータ型は何になってる?
フォームでセットとは具体的にどうやってるんだ?

583:デフォルトの名無しさん
16/01/21 19:53:25.15 dhgW0ru6.net
添付ファイル型っていうのがあってだな云々・・・

584:デフォルトの名無しさん
16/01/21 20:32:40.23 xJzWoKjV.net
> If RS_写真.Fields("FileName") = "" Then
FileData?
データが入ってたらFileNameとは何を指すのだ

585:デフォルトの名無しさん
16/01/21 20:50:12.31 dhgW0ru6.net
フィールドに複数データが入るんだけど、ファイル名とファイル本体がセットになって入るイメージなんじゃないかな。
>>553 は配列のような捉え方で書いてるんだと思う。
フィールドがnullなのかを見ればいいんだろうけど、ファイル名を指定してそのファイル本体の有無を見たいのかな。
でもそれだとファイル名のみがあってファイル本体がないってことがあり得ることが前提になると思うんだけど。

586:デフォルトの名無しさん
16/01/21 21:21:29.71 eWUPCZWU.net
添付ファイル型なら
RS_写真のEOFと(MoveLastしてから)RecordCountみれば、添付されてるファイルの件数はわかる

587:553
16/01/22 16:35:45.14 FxZxO26V.net
皆様、お返事ありがとうございます。
当該フィールドは「添付ファイル」型です。
「添付ファイル」型の写真フィールドは、下位フィールド?として写真.FileData / 写真.FileName / 写真.FileTypeを持っているため、写真.FileNameの有無でNULLか否かを確認しようとしていました。
>>557 さんと >>563 さんのお陰でNULLか否かはRS_写真のEOFを見れば良いだけと気づき、
何とかやりたい操作ができそうです。
この度はご指摘戴き、誠にありがとうございました。

588:デフォルトの名無しさん
16/01/27 16:39:25.69 He5RGQG2c
Access2010のVBAの動作にて質問です。
現在クエリのデータをCSV形式にて出力をするために
DoCmd.TransferText acExportDelim, ,"クエリ名","出力先\ファイル名.csv"
と言う文を使っているのですが、クエリの行が複数の場合は1行ごとに出力をしたいのですがどうすればよろしいのでしょうか。

589:デフォルトの名無しさん
16/01/28 08:27:25.34 cOsSJrMS.net
Access2010のVBAの動作にて質問です。
現在クエリのデータをCSV形式にて出力をするために
DoCmd.TransferText acExportDelim, ,

590:デフォルトの名無しさん
16/01/28 09:02:23.84 cOsSJrMS.net
途中で切れてしまったので再度質問させていただきます。
Access2010のVBAの動作にて質問です。
現在クエリのデータをCSV形式にて出力をするために
DoCmd.TransferText acExportDelim, ,"クエリ名","出力先\ファイル名.csv"
と言う文を使っているのですが、クエリの行が複数の場合は1行ごとに出力をしたいのですがどうすればよろしいのでしょうか。

591:デフォルトの名無しさん
16/01/28 09:25:27.95 xQdz3S4b.net
>>567
連続出力するなら
レコードセット開いてレコード毎に書き出しループ
連続出力しないなら
フォーム上の値を参照するパラメータクエリ作って
DoCmd.TransferTextで書き出し

592:デフォルトの名無しさん
16/02/01 21:40:46.


593:53 ID:uqBwC27M.net



594:デフォルトの名無しさん
16/02/01 22:12:10.32 HIlaIvm8.net
べつにSQL ServerでもORACLEでも同じだとおもうけど
ケースバイケースとしか言えん

595:デフォルトの名無しさん
16/02/02 09:04:52.93 nmsl1byO.net
リンク使わないなら別にAccessじゃなくても良いよね、って回答はダメ?

596:デフォルトの名無しさん
16/02/02 10:25:44.88 OPpL3JBW.net
ハマってしまいました、cell とoffsetとloopの関係が解明できません。
エクセルデータから一行ずつhtmlファイルを作成するということをしたいです。
minitemplatorを使っています。
試しに3行でつくってみるとファイル名は変わるのですが、
set変数の箇所が一行目のままかわりません。
↓こんなVBAにしてあります
Private Const START_CELL =

597:デフォルトの名無しさん
16/02/02 10:28:02.77 OPpL3JBW.net
すみません
Private Const START_CELL = "T3"
Public Sub PushButton()
'
Dim Cell As Range
Dim Temp As MiniTemplator
Set Temp = New MiniTemplator
'テンプレートファイルを読み込みます。
Temp.ReadTemplateFromFile ThisWorkbook.Path & "\h00_0.html"
'セルのスタート位置を設定します。
Set Cell = Range(START_CELL)
'現在アクティブになっているシートの最終行まで以下を繰り返します。
Do While Cell.Row <= ActiveSheet.UsedRange.Rows(ActiveSheet.UsedRange.Rows.Count).Row
Temp.SetVariable "TITLE", Cell.Offset(0, 1).Value
Temp.SetVariable "CHAPTER", Cell.Offset(0, 2).Value
Temp.SetVariable "PREVCHAPTER", Cell.Offset(0, 3).Value
Temp.SetVariable "PREVPAGE", Cell.Offset(0, 4).Value
Temp.SetVariable "INDEX", Cell.Offset(0, 5).Value
Temp.SetVariable "NEXTPAGE", Cell.Offset(0, 6).Value
Temp.SetVariable "NEXTCHAPTER", Cell.Offset(0, 7).Value
Temp.AddBlock "htmls"
Temp.GenerateOutputToFile ThisWorkbook.Path & "\" & Cell & ".html"
Set Cell = Cell.Offset(1, 0)
Loop
End Sub

598:571
16/02/02 10:30:04.88 OPpL3JBW.net
申し訳ない!accessの方に書き込んでしまいました、excelの方へ移動いたしますorz

599:デフォルトの名無しさん
16/02/02 15:13:01.55 ml14fhOB.net
>>571
メインのDBはSQLServerやACCDBだけど、特定のデータだけ
別DBのORACLEからとって来たいなんて要件だったりしたら
ORACLEにリンクテーブル作るほどでは無かったりするかもしれんだろ

600:デフォルトの名無しさん
16/02/02 15:27:20.80 chGMw9p3.net
これはひどい

601:デフォルトの名無しさん
16/02/02 17:32:28.26 nmsl1byO.net
>>575
質問者の質問内容は>>569ですよ~

602:デフォルトの名無しさん
16/02/02 19:38:08.47 ml14fhOB.net
>>577
何が言いたいのかわからん
リンクテーブルかそれ以外でのアクセスかって質問に対して
ACCCESSならリンクテーブル一択だろ、見たいな事を言うから
そうじゃない状況もあるだろって言ってるんだが

603:デフォルトの名無しさん
16/02/02 22:01:22.04 nmsl1byO.net
>>578
質問者はOracleをAccessから操作する場合はどちらかを聞いている訳で
その状況ならリンクで良いんじゃね、と答えただけ
そこにお宅が勘違いして質問にないSQL Server絡めて否定してきたから
ちゃんと質問内容見ろよ、と返しただけ

604:デフォルトの名無しさん
16/02/03 16:11:02.04 /VnwDmrp.net
両成敗

605:デフォルトの名無しさん
16/02/04 08:30:21.82 aSn7db66.net
>>580
うるせぇよ、顔面男性器

606:デフォルトの名無しさん
16/02/04 15:29:20.74 oKzBZVFr.net
>>581
うん

607:デフォルトの名無しさん
16/02/07 19:26:30.89 PcQYM9su.net
Accessでエクセルファイル読もうと思ってExcelオブジェクトを作成した時、
既にエクセルを�


608:ァち上げているとマクロの挙動がおかしくなったり、 あるいは後からエクセルを立ち上げようとするとマクロが終了するまで画面が白いままなのですが、 これを避けてAccess側のみで扱えるエクセルオブジェクトを作ったり、あるいはエクセルと併用したりという事は出来ないでしょうか? スプレッドシートのインポートは暗号化の影響で上手くいかないので、エクセルオブジェクトを通す必要があります。



609:デフォルトの名無しさん
16/02/08 15:38:17.85 qbvivMLd.net
>>583
できるよ

610:デフォルトの名無しさん
16/02/08 18:15:52.92 V9YCd2yR.net
つか普通にやればそうなってたと思ったけど
CreateObjectって、インスタンスあったらそれ掴んで返すのか?

611:デフォルトの名無しさん
16/02/10 00:18:50.90 SmKUXNow.net
vbaでも知りたいのですが、accessで列見出しを行見出しにするには、どんなコードを書けばいいでしょうか?クロス集計ではできませんでした。

612:デフォルトの名無しさん
16/02/10 09:07:48.34 FkM1RfeE.net
>>586
行列入替えがしたいっての?それ、データベースのルールに反してる
わけだが。
クロス集計クエリの場合にはデータ元がきちんとクロス集計できる形に
なっていれば、できないということはない。

613:デフォルトの名無しさん
16/02/22 10:46:47.09 4/RFA0DI.net
金はあるけど時間がない
経験値100倍くらいになる課金ないんか

614:デフォルトの名無しさん
16/02/22 10:47:20.99 4/RFA0DI.net
すまん
誤爆った

615:デフォルトの名無しさん
16/02/22 12:20:31.39 Y1bHL8fN.net
>>588
それな

616:デフォルトの名無しさん
16/02/22 12:21:37.50 GAqrdc9h.net
>>588
あえて、経験値にした辺りに謙虚さがあるな
俺だったら、最初からスキルボックス(中身はランダム)みたいな課金する。

617:デフォルトの名無しさん
16/02/22 18:37:53.19 QLpZ1xcH.net
うざ

618:デフォルトの名無しさん
16/02/24 23:35:39.37 UmTzYcDx.net
日常的にAccessのピボットテーブルをCtrl+A Ctrl+Cして
Excelに貼り付けてるんですが
これをVBAできませんでしょうか

619:デフォルトの名無しさん
16/02/25 10:52:35.16 xnX4JkuY.net
できますん

620:デフォルトの名無しさん
16/02/25 13:16:09.91 W1s9bb7v.net
>>593
Googleスプレッドシートは簡単に関数でソレが実現できます。
ちなみに、Accessでは「貼り付ける」行為は出来なくはないです。ただ、オートメーションでやる
ならそういうことになりますが、普通はExcel上でピボットを作成スべきでしょう。

621:デフォルトの名無しさん
16/02/25 22:25:15.86 DG6YFXpT.net
>>594
もうすこしヒントを
どのオブジェクトプロパティをいじればいいとか

622:デフォルトの名無しさん
16/02/26 15:13:34.90 VQGl6zaq.net
VBAで

623:デフォルトの名無しさん
16/02/26 18:31:07.27 A3HYqZte.net
全選択なら単にエクセルにエクスポートすればいいんじゃないの?

624:デフォルトの名無しさん
16/03/04 22:35:15.49 KUnf3VuC.net
質問 Access2010
突然、フォームのデータシートビューで列を入れ替えてもその状態が保存されないようになってしまいました。
いろいろと原因を調べてみるとOpenやLoadイベントでフィルター設定を行うとそんなトラブルが起こってしまうようなのです。
Private Sub Form_Open(Cancel As Integer)
 Me.Filter = "ID>3" '例
 Me.FilterOn = True
End Sub
皆さんの所でも再現出来ますでしょうか
ちなみに自宅のAccess2002ではこういった異常な動作は起こりませんでした
またこれって有名なバグとかなんでしょうか

625:デフォルトの名無しさん
16/03/24 22:15:00.25 aSgI1iJJ.net
access 2010
windows7
DoCmd.OutputTo acReport,

626:デフォルトの名無しさん
16/03/24 22:16:25.19 aSgI1iJJ.net
access 2010
windows7
DoCmd.OutputTo acReport, "hoge_table", acFormatXLS, "C:\hoge.xls"
レポートファイルをxlsへ出力するときに
「実行�


627:档Gラー 2587 出力が完了できません」が 出てきてしまいます。 実行時エラー2587を検索しても情報が出てこない為、 困っています。 どなたか何が原因かわかりますでしょうか? 先月までは機能していたんですが、 今月から急に上記エラーが出てくるようになりました。



628:デフォルトの名無しさん
16/03/25 13:31:48.84 ctOehyRA.net
プリンタが変わった レポートの書式が変わった(文字コード系)
再インストールで復帰した  というようなresが 英語のフォーラムだけど
手動でエクスポートした場合も同じエラーかどうか
ん?レポートファイルをxlsへ? "hoge_table" テーブルをxlsへの間違い?
テーブルをcsv出力してxlsなら?   とかいろいろ

629:デフォルトの名無しさん
16/03/25 16:30:30.08 e4gujGfG.net
データが増えてリソース不足、ってのが一番考えられる理由だけど
何のリソースかはわからんが
もうちょっと詳細なエラー内容ないのかね

630:デフォルトの名無しさん
16/03/25 21:03:03.83 WqFryHCY.net
今、先月のhoge_tableをoutoputしたらどうなの

631:デフォルトの名無しさん
16/04/27 21:09:35.11 KUAYo6wN.net
フォーム上でリストボックスを選択すると、その他のテキストボックスに値が入る仕組みってどうやったらできますか?

632:デフォルトの名無しさん
16/04/27 23:03:47.34 Sazji9Gw.net
Me.[その他のテキストボックス] = Me.[リストボックス].Value とか
Me.[その他のテキストボックス] = Me.[リストボックス].Column(n) とかを
リストボックス クリック時イベントに仕込む うろ覚え

633:デフォルトの名無しさん
16/04/28 01:08:29.45 ybePhPhs.net
>>606
後者の場合で、表示させたデータを別のテーブルに保存させるにはどうすればいいですか?

634:デフォルトの名無しさん
16/04/28 09:47:32.29 wel45o+X.net
ワークテーブルに入れるなりしてSQLとか追加クエリとか

635:デフォルトの名無しさん
16/04/28 17:15:09.15 iPy/jEF0.net
>>605
リストボックスのコントロールソースをテキストボックスのコントロールソースにも指定
もしくは
テキストボックスのコントロールソースにリストボックス自身を指定
リストボックスのみ編集可設定

636:デフォルトの名無しさん
16/07/12 06:40:44.26 o2wIdsaQ.net
ExcelのシートからADOでデータ取り込みをやろうとしてます
ルックアップで別のテーブルを参照しているフィールドを持つテーブルにレコードを追加したいのですが
具体的にはExcelシートには都道府県名が文字列で入っていて
Accessのテーブルは都道府県名は別テーブルを参照して数値で持っています
色々試してみたのですが 追加先テーブルの数値型のフィールドには数値しか入力できず
参照している先のテーブルの"東京都"などの文字列データはUpdateでエラーが出ます
(あたりまえでしょうけど)
こういった参照先データで入力したい場合 なにか良い方法があるのでしょうか?

637:デフォルトの名無しさん
16/07/12 16:15:23.94 /KovKhYj.net
別テーブルを参照して数値を入れる

638:デフォルトの名無しさん
16/07/12 19:00:20.62 o2wIdsaQ.net
>>611
やっぱり それしか無いですかね
何万行もあったから データ入力する度に別テーブルのFindFirstとかやってID見つけるの
コスト凄いかと思ってたんですが
やってみたら それほど時間かからなかったです

639:デフォルトの名無しさん
16/07/12 21:49:03.75 hENPvfBC.net
都道府県名が入ってるシートって郵便番号のあれですかね
まぁ質問の意味がよくわかんないから無視して結構です

640:デフォルトの名無しさん
16/08/24 19:34:34.65 3q4Jyrt7.net
SQLでテキストデータを取り込む時、ヘッダー行を任意の位置で指定する事は出来ますか?
読み込もうとしているcsvファイルのヘッダー行が3行目なので、この位置から読み込ませたいのです。
色々調べたんですが、外部データベースを取り込む際のキーワードがなかなか出てこず苦戦しています。

641:デフォルトの名無しさん
16/08/24 21:33:54.83 XY92uhDq.net
開始行を含


642:めるか含めないかしかなかった様に思う。 取り込んでしまってからヘッダー行を消すSQL実行したらはやいかも。



643:デフォルトの名無しさん
16/08/24 22:13:48.17 3q4Jyrt7.net
>>615
ありがとうございます。
HDR=Noか、もしくはVBAで処理する様にします。

644:デフォルトの名無しさん
16/09/29 17:49:20.39 Z3hVyFqu.net
SQLで質問ですが、
select * from DATATBL group by NAME
こんな感じで集計させても結果が0になってしまうのですが、書式間違ってますか?
ちなみにC++BuilderからMicrosoft.Jet.OLEDB.4.0でmdbファイル操作してます。

645:デフォルトの名無しさん
16/09/29 18:41:58.74 2yQBgN/R.net
select NAME, COUNT(*) from DATATBL group by NAME

646:デフォルトの名無しさん
16/09/29 18:55:56.52 Z3hVyFqu.net
>>618
返答ありがとうございます。
しかしながら selectでNAMEのみを指定すると項目が足らんみたいなエラーが出てしまいます。
select *, COUNT(*) from DATATBL group by NAME
こうするとエラーは出ませんが、結果はやはり0になってしまいます

647:デフォルトの名無しさん
16/09/29 19:18:38.30 Z3hVyFqu.net
>>618
すみません、他の箇所でエラーが出ていました。
正常にselectする事ができました。ありがとうございました。

648:デフォルトの名無しさん
16/09/30 11:38:14.95 tD6+ktpC.net
またSQLで質問ですが、
DATEでソートしてからNAMEをグループ化したいので
select NAME from (select * from TESTTABLE order by DATE) as group by NAME
上記のようにしたのですが結果が0になってしまいます。
何処が間違ってますか?

649:デフォルトの名無しさん
16/09/30 11:43:24.10 tD6+ktpC.net
あ、as取ったらいけました

650:デフォルトの名無しさん
16/09/30 13:45:49.20 VqVPXDNJ.net
GROUP BY 後の順序は保証されてなかったと思う
確実にやるならグループ化してからソート

651:デフォルトの名無しさん
16/09/30 13:59:26.62 4mQfWuIk.net
いいかげんスレチ

652:デフォルトの名無しさん
16/10/01 18:16:06.96 94YBKalt.net
すみませんが教えて下さい。
Access2010でフォームにWebブラウザコントロールを張り、
Me![ScrollInfo].Navigate

653:デフォルトの名無しさん
16/10/01 18:24:50.88 94YBKalt.net
すみませんが教えて下さい。
Access2010でフォームにWebブラウザコントロールを張り、
Me![ScrollInfo].Navigate で正常にページが表示されています。
そのフォームを右クリックでデザインビューに切り替えると以下のエラーが出来ます。
StatusTextChange でエラーが発生しました(以下略)
ちなみに×ボタンで普通に閉じるとこのエラーは発生しません。
Access2016でも同様でした。
ご存知の方がいらっしゃいましたらお願い致します。 

654:デフォルトの名無しさん
16/11/10 12:17:09.05 MJMdCBmm.net
sendobjectでレポートをPDFで添付して送ろうとすると
添付されたファイル名が・.pdfになるのは仕様ですかね?
ACCESSとOutlookは2013です
ただAccessのファイルはmdb形式

655:デフォルトの名無しさん
16/11/10 12:51:09.43 dxAJlx69.net
どうしたいの?

656:デフォルトの名無しさん
16/11/10 13:28:54.05 MJMdCBmm.net
添付ファイルが"元となったレポート名".pdfになるのかと思っていたのだけど、違うのかなという疑問

657:デフォルトの名無しさん
16/11/10 13:29:38.75 dxAJlx69.net
それで通じるとかマジで思ってる?

658:デフォルトの名無しさん
16/11/10 14:01:21.25 lT3NS9hL.net
通じないか…すまん
Docmd.Sendobjectを使ってレポートをPDFに変換してメール送信したい
実行はできているが、変換されてメールに添付されたファイル名が・.pdfになってしまう。
これがなぜ・になるか知りたい。
レポートのオブジェクト名は・ではない。
日本語名がNGなのか?

659:デフォルトの名無しさん
16/11/10 14:37:03.21 dxAJlx69.net
そう思うなら ASCII のファイル名とか UTF-8 のファイル名試してみれば?

660:デフォルトの名無しさん
16/11/10 14:38:13.94 uCLe8e7d.net
>>631
MIMEでiso-2022-jpとかにしてみ

661:デフォルトの名無しさん
16/11/10 20:01:07.80 lT3NS9hL.net
レポートの表題がファイル名になることがわかった。
レスくれた方ありがとう。

662:デフォルトの名無しさん
16/12/28 11:38:08.54 qa9jiDer.net
?Eval("'山ー田' Like '*山田*'")
-1
何で?
Win7x64+


663:Acs2010



664:デフォルトの名無しさん
16/12/28 12:22:36.72 JT952dSj.net
>>635
そりゃ真ん中に入ってるからだと思うが。

665:デフォルトの名無しさん
17/01/01 18:08:01.09 T039qKRQ.net
-1はTrueだから一致することについて疑問に思ってるのでは

666:デフォルトの名無しさん
17/01/01 20:32:48.66 F1PmU62+.net
>>635
Evalの引数が単なる文字列として認識されてるからかも
?Eval("山ー田" Like "*山田*")
だと期待する結果になる

667:デフォルトの名無しさん
17/01/01 20:35:20.03 F1PmU62+.net
すまん環境書き忘れた
Win10 x64, Access2016 32bit

668:デフォルトの名無しさん
17/01/01 22:05:32.13 5bQycJKK.net
文字判定だから、アクセント無視で長音記号が無視されてるだけだと思ったけど
?Eval("'山xー田' Like '*山田*'")
も-1だな
?Eval("'山ーx田' Like '*山田*'")
は0だった
長音記号無視するルールになんかあるのかもしれん

669:デフォルトの名無しさん
17/01/02 21:00:22.06 Qo2R7jJK.net
クエリでもヒットしちゃうな。

670:デフォルトの名無しさん
17/01/04 15:01:47.06 rtXdgiQY.net
利用環境
access2010
Windows7
上記環境で同時接続400人程度のファイルを作成しようとしています
管理者2~3人が100~1000件程度のレコードを編集しながら
400人程度が編集したレコードを参照。参照後に自動で既読フラグを
access内のテーブルに入力する仕組みです
上記イメージで利用する場合、400人が同時に既読情報を
DBに対して入力することになります。
(実際は入力するタイミングがずれるので同時編集は
多くて100人程度になりそうです)
Accessは負荷に耐えきれるのでしょうか?
400人の既読情報を40個のテーブルに分割して
リンクテーブルで負荷を分散させれば実用範囲になるのでしょうか?
社内セキュリティの制約でAccessしか利用が出来ない状態なので
他のツールを使用することは出来ないです
お手数をおかけしますが、お分かりの方がいらっしゃれば
ご教授をお願い致します

671:デフォルトの名無しさん
17/01/04 15:08:19.02 XZra0ySO.net
全員が同じaccess開くならやめとけ
>400人の既読情報を40個のテーブルに分割して
>リンクテーブルで負荷を分散させれば実用範囲になるのでしょうか?
そこまで分けなくても
テーブル専用mdbと参照専用mdbに分けて
参照専用mdbを400人全員ローカルに置く
参照専用mdbからテーブル専用mdbにリンクするだけでいいんじゃね

672:デフォルトの名無しさん
17/01/04 15:25:42.45 JR/sdM0U.net
>>642
そこまで社内セキュリティにうるさい会社で勝手にやっていい範囲のシステムだとも思えんけど
>Windows7
この時点で、ライセンス違反の可能性が非常に高い
おそらく同時接続制限もかかる
フロントエンドはアクセスでもいいけど、どう考えてもバックエンドにまともなDB入れるべき
てか利用者400人のシステムで「同時」書き込み100とかなかなか行かないけどな
たぶんライセンス無視すれば>>643のやり方で行けるだろ
ほんとに同時書き込みが100あるならACCDBみたいなファイル共有型のDBじゃ無謀

673:デフォルトの名無しさん
17/01/04 15:58:00.68 TNTuXRka.net
>>643
返信ありがとうございます
「400人全員のローカルに参照専用ファイルを保存する」
ということが社内環境上、難しいです
また、参照専用ファイルを修正して差し替える場合に
大変な労力がかかる可能性があるので、可能であれば
参照専用mdbを、共有サーバに配置して
400人で開いてもらい、テーブル専用mdbに対して
入出力する方法が取りたいです
400人で参照専用mdbを開くということは無謀でしょうか?

>>644
返信ありがとうございます
ライセンス違反の可能性は考慮していませんでした
調べて見ます
未読状態のものは赤表示にしようと考えている為、
テーブルから未読/既読状態のデータを読み取ることもあります
開いた瞬�


674:ヤに既読フラグを付けるだけのシンプルな入力なので 確かにおっしゃる通り100人で同時に書き込みがあることは ないですね。恐らく多くて20~30だと推測します 参照専用mdbからテーブル専用mdbに入出力する場合は 「テーブルリンク機能を使う」ということでしょうか? 仕事中なので返信が遅くなってしまいます 申し訳ありません



675:デフォルトの名無しさん
17/01/04 16:06:47.19 kAiTvQKX.net
未読とか既読フラグは400人全員が個別に持つんだろ?
だったら400人分mdb持った方が多い日も安心

676:デフォルトの名無しさん
17/01/04 16:53:55.47 JR/sdM0U.net
>>646
利用者各々が自分の既読が分かれば良いだけならそれで良いけど
管理者が誰が未読か知りたいとか既読者の一覧出せとかいう要件があると
結局既読フラグは集中管理する方が楽
まあどっちにしてもプログラム用のMDBは各ユーザに配るべきだが

677:デフォルトの名無しさん
17/01/04 16:58:07.53 ZppiaYb0.net
accessでやる案件じゃないな

678:デフォルトの名無しさん
17/01/04 17:01:26.69 JR/sdM0U.net
>400人で参照専用mdbを開くということは無謀でしょうか?
アクセスのDBは基本的にはファイル共有で動作してる
共有サーバどうする気か知らんが、その共有サーバで実際に400人でファイル同時オープンしてみ
それで問題なさそうなら真剣にmdb共有検討してみても良いかもしれん

679:デフォルトの名無しさん
17/01/04 17:29:52.12 geFs4Pus.net
>>649
仰る通り、管理者用に作成しようとしているツールです
ゆくゆくはアンケートを取るようにして、
400人のユーザの傾向分析などに使おうと思っています

> アクセスのDBは基本的にはファイル共有で動作してる
ファイル共有で動作している事で、同時に複数人で
mdbを開くと負荷が大きくなるということでしょうか?
> 共有サーバどうする気か知らんが、その共有サーバで実際に400人でファイル同時オープンしてみ
この部分が最大のネックで、テストが出来ない環境なんです

680:デフォルトの名無しさん
17/01/04 23:07:33.39 Hrm6AnDP.net
社内セキュリティで制約厳しいのに 仕事中に2chで相談  阿呆らし  アホじゃ無いよ、阿呆だよ

681:デフォルトの名無しさん
17/01/04 23:09:47.67 J+uePkPh.net
釣りには反応しないことにしている

682:デフォルトの名無しさん
17/01/05 04:36:33.99 n6wSBZKS.net
>>650
mdbですよね?
データ量にもよりますが同時セッションでせいぜい数人です
同時でないにせよ400人はAccessの要件じゃないです
ほぼ確実にmdb壊れますよ

683:デフォルトの名無しさん
17/01/05 13:00:18.18 UOU5yV0Y.net
>>653
ありがとうございます
同時にたくさんのユーザで開くことが現実的でないのであれば
下記方法を検討してみようと思います。
・共有サーバーに起動用mdbを1個。参照用mdbを40個。テーブル専用mdbを7個設置。
・全ユーザーは起動用mdbからIDによって振り分けられた参照用mdbに移動。
(400人に対して参照用mdb40個なので、
10人単位で参照用mdbを割り当てる)
・各参照用mdbからテーブル専用mdbに入出力を行う
(既読フラグの入力。既読状態を読み取って参照用mdbの
フォームに既読の表示をする)

684:デフォルトの名無しさん
17/01/05 13:07:54.05 2uA+A+xC.net
人の話を聞かないひとだな

685:デフォルトの名無しさん
17/01/05 13:50:12.16 L/jinxrk.net
ヴァージョン管理は何が良いのかな?
実際に使っている人いますか?

686:デフォルトの名無しさん
17/01/05 13:58:55.25 UOU5yV0Y.net
>>655
人の話を聞いていないように見えたのであれば謝罪します
申し訳ありません
Accessで扱うには難しい案件だという事は分かりました
その難しい環境下で、どうやったら実現出来るかが知りたいです

687:デフォルトの名無しさん
17/01/05 14:34:29.15 2uA+A+xC.net
>Accessで扱うには難しい案件だという事は分かりました
論点はそこじゃないよ

688:デフォルトの名無しさん
17/01/05 14:57:02.77 YjTG1plI.net
しらんがな

689:デフォルトの名無しさん
17/01/05 15:21:53.24 UOU5yV0Y.net
>>658
「人の話を聞かないひとだな」「論点はそこじゃないよ」
論点はどこですか?

690:デフォルトの名無しさん
17/01/05 16:44:07.63 1cxa7M6H.net
>>654
色々アイデアを出されておりますが400人が接続する先は「テーブル専用mdb」ですから
仮に動作したとしてもクエリ1つ投げて戻ってくるのに数十秒かかる、という事態も想定されますよ
どうしてもAccessで開発するのであれば
バックエンドをSQL Serverなどにして「参照用mdb」を各クライアントに配布する形になります

691:デフォルトの名無しさん
17/01/05 19:41:31.33 V7dbykQV.net
ファイルベースだとmdb以前に共有サーバの同時接続数も見積もらないといけないのでは

692:デフォルトの名無しさん
17/01/05 23:23:39.16 quCbp6zV.net
阿呆通り越して馬鹿か いかれてる
到底400人を超える社員を擁する企業の案件とも思えず(担当がこのレベルなんだし)
じゃあ何だ?ゲームのなんちゃら?とも思えず、僕ちゃんAccessなら少しはお上手だから
それで400人のお年寄りを騙す仕組みを思い付いたから構成教えて!なのか
なんなんだ?こいつ  ひつこいし

693:デフォルトの名無しさん
17/01/06 08:55:08.12 977IrQIJ.net
>>663
まずは日本語勉強しようね

694:デフォルトの名無しさん
17/01/08 10:59:41.54 tUVpbJjX.net
そもそも誰もWin7の同時接続数制限とか突っ込まない件
652除く

695:デフォルトの名無しさん
17/01/08 12:33:28.94 0mVP2hZ6.net
政治には興味ないですし

696:デフォルトの名無しさん
17/01/08 16:28:19.18 7mm8hykc.net
>>665
>>644で突っ込まれてるけど?

697:デフォルトの名無しさん
17/01/08 23:15:06.32 tUVpbJjX.net
>>667
ライセンス違反じゃなくて、もともとできんのだよ。動的パッチでも当てないと。またレジストリをいじらないと実際にはその前に限界が来る。
わからないくせに出しゃばるなよ。

698:デフォルトの名無しさん
17/02/16 10:45:18.11 aBJd2B4P.net
Accessから参照設定なしでExcelを起動し、種々作業を行うPGを作ってます。
その際、Excelの自作関数(Function)が使えんのですが、
良い方法がありましたらご教示お願いします。

699:デフォルトの名無しさん
17/02/16 11:30:15.28 KUjZVbQE.net
追記です。
自作関数(Function)は、=SUMのように
Excelシート上で使う関数です。

700:デフォルトの名無しさん
17/02/16 12:08:53.08 1VBkG9E6.net
参照しろ

701:デフォルトの名無しさん
17/02/16 12:33:12.55 l4cugFFN.net
回答ありがとうございます。
いちおう参照設定してのテストも行ってますが、結果は同じでした。
なので困ってます。(;ω;)

ちなみに参照設定しないのは、AccessでExcelを扱う際にやっかいとなる、
残プロセスを残さないためです。

702:デフォルトの名無しさん
17/02/16 13:29:00.95 1VBkG9E6.net
じゃあ再定義しろ
中身はformulaでとって来れるだろ

703:デフォルトの名無しさん
17/02/16 13:59:57.08 0BcpOJQi.net
>>672
自作関数については分かりませんが
> ちなみに参照設定しないのは、AccessでExcelを扱う際にやっかいとなる、
> 残プロセスを残さないためです。
参照設定(事前バインディング)はコンパイル最適化とコーディングをしやすくするのが主な目的です
それが原因でプロセスが残る事は考えにくいです(そんな現象は見た事がない)
定番の「Excelオブジェクトを解放しきれていない」が原因ですよ

704:デフォルトの名無しさん
17/02/16 16:50:59.97 ha+qjoA8.net
えっ?使えるでしょ。
objExcel.WorksheetFunction.Sum(...

705:デフォルトの名無しさん
17/02/16 16:54:22.22 ha+qjoA8.net
ああ、自作関数だったか。
Application.Runじゃ出来なかったっけ?

706:デフォルトの名無しさん
17/02/16 17:58:12.26 6ZvAKcv7.net
>>674
その通りなんですが…
参照設定しないのが一番簡単なので。。
みなさまありがとうございました。

自作関数は諦めて、標準の関数でなんとかしました。
記述はかなり冗長になりましたが…

707:デフォルトの名無しさん
17/03/14 15:44:05.81 xSphHjM7.net
プロシージャ内でSQLを使用する際に、
SELECT
[テーブル名].[フィールド名]…
みたいな感じで、テーブルオブジェクト全てにカギ括弧をつけてるんですが、
みなさんはどうしてますか?

708:デフォルトの名無しさん
17/03/14 15:52:48.60 vbV/Jpv3.net
付けてるよ

709:デフォルトの名無しさん
17/03/14 18:46:12.84 hwBjOTV4.net
あざーっす!

710:デフォルトの名無しさん
17/03/15 09:24:20.26 5k9Lj/ic.net
カッコなんてつけなくても
よくね?

711:デフォルトの名無しさん
17/03/15 11:36:01.57 7YWEdixI.net
構文エラーになるケースを避けるため

712:デフォルトの名無しさん
17/03/16 15:27:44.93 IvuT2rvG.net
フィールド名に全角英数字を使っている場合にカギ括弧を付けないと構文エラーになる
まあ、普通はフィールド名に全角英数は付けないけどね。

713:デフォルトの名無しさん
17/03/16 23:24:09.16 PNfj678B.net
いまどき、普通に日本語を使えないのかよ

714:デフォルトの名無しさん
17/03/23 10:28:42.05 5Vz0tz9C.net
お疲れさまです。
DoCmd.RunSQL で、select結果を表示する方法ってあります?

715:デフォルトの名無しさん
17/03/23 11:35:43.51 AyyVp0Pm.net
あります

716:デフォルトの名無しさん
17/03/23 12:21:55.77 sD6rx87L.net
ご教示いただけたら幸いでございます

717:デフォルトの名無しさん
17/03/23 12:46:28.00 AyyVp0Pm.net
948 デフォルトの名無しさん sage 2017/03/22(水) 18:27:50.62 vhfzvoEm
少し調べればすぐ分かることなんだから
聞く前にまず自分で調べなよ
949 デフォルトの名無しさん sage 2017/03/22(水) 20:02:01.65 pQEBF+SX
>>947
初心者のくせに欲張りだね君は

718:デフォルトの名無しさん
17/03/23 14:40:42.73 BfWircGx.net
999 名前:本当にあった怖い名無し@無断転載は禁止 :2017/03/23(木) 04:44:44.44 ID:7MjKM4Gx0
てめえか?
てめえかよ!え?
その腐った根性!
URLリンク(youtu.be)

719:デフォルトの名無しさん
17/04/17 10:33:15.33 hesGBEnq.net
>>685
docmdでは無いけどこちらを利用してみてはどうでしょうか?
URLリンク(m.chiebukuro.yahoo.co.jp)

720:デフォルトの名無しさん
17/04/17 10:45:51.14 hesGBEnq.net
・access2010
・win7
・共有サーバ上での利用
・共有サーバにaccessで作成したスターターファイル.accdbとフロントエンドファイル.accdbがあります
・accessを開くと必ず上部に黄色のバーが表示されて
「コンテンツを有効化してください」が表示されます

上記環境での質問です
1,スターターファイルを開いて、フロントエンドファイルをvbaで共有サーバ上の別のフォルダにファイル名「a.accdb」としてコピー
2.vbaでコピーした「a.accdb」を起動
3.ユーザはマウス操作で「a.accdb」の「コンテンツを有効化」ボタンを押下
3の動作をした際に「a.accdb」が必ず自動で閉じられてしまいます
2回目の起動の際には「コンテンツを有効化してください」が有効になっている為、閉じられることはありません
何が原因で「a.accdb」が自動で閉じられているのでしょうか?
またどうすれば閉じないように処理をすることが出来るのでしょうか?
恐れ入りますが、ご教示願います

721:デフォルトの名無しさん
17/04/17 12:24:07.44 BKaS1p5r.net
フロントエンドは各クライアントに置く
各クライアントにはRuntimeをインスコ
その状況なら、いろいろ解説しているサイトがごまんと転がってる
鯖でアプリケーションサーバー機能を持たせてないなら
鯖上のアプリを起動しようとする意図が間違っている
スターターは何だか判らん

722:デフォルトの名無しさん
17/04/17 13:58:30.12 43/Py1Cq.net
すみません、下記前提が抜けていました
・クライアント側はローカルへのデータ保存不可
・クライアント端末にruntimeのインストール不可
スターターはクライアントが直接フロントエンドファイルを開かない(占有)しないようにする為のファイルです
accessが閉じられてしまう原因が分かりました
Sub test()
Dim acApp As Access.Application
Dim strDBPath As Stri


723:ng strDBPath = "hogehoge\db1.MDB" Set acApp = New Access.Application acApp.OpenCurrentDatabase strDBPath End Sub プロシージャを抜けるとローカル変数の acAppが無効化されてしまう為に accessが閉じられていました グローバル変数としてacAppを宣言することによって 閉じられてしまう事は回避出来たのですが 同じプロシージャ内に「スターターを閉じる」命令を すると、コピーしたファイルまで閉じてしまいます 理想はスターターを起動後、 1.ファイルをコピー 2.コピーしたファイルを開く 3.スターターを閉じる を全て実行出来るようにしたいのですが、accessVBAでは 出来ないのでしょうか?



724:デフォルトの名無しさん
17/04/17 14:35:23.27 AilOqA4r.net
>>693
環境とやりたい事が全く分からん
>・クライアント端末にruntimeのインストール不可
当然ACCESSそのものもインストール不可なんだろうな
その状態で、スターターやコピーしたaccdbは「誰が」「開く」んだ
ふつうaccdbを開くというのはACCESS(ランタイム含む)で開くことだぞ
クライアントにACCESS(ランタイム)インストール不可
ローカル(クライアント)にACCDBコピー不可
の環境で、ACCESSで作ったアプリ使おうとか俺なら無理って言って断るけど

725:デフォルトの名無しさん
17/04/17 15:33:38.97 fguab9d+.net
バッチファイルなら2行で出来る
Copy A B
B

726:デフォルトの名無しさん
17/04/17 17:40:07.70 Jx2ehMcZ.net
>>695
ありがとうございます
共有サーバ上にバッチファイルを置く事は出来ないので
バッチファイルでの対応は検討していなかったんですが
accessVBAでクライアントのローカルにバッチファイルを
生成して、それを実行した後にスターターファイル自身を
閉じれば想定通りの動作をするかもしれません!

727:デフォルトの名無しさん
17/04/17 18:40:12.06 AilOqA4r.net
>>696
なあ、そのバッチファイルやVBAはいったいどこで実行する気なんだ?

728:デフォルトの名無しさん
17/04/17 22:03:56.60 BKaS1p5r.net
もうリモートでやれよ 後々のメンテ考えてもリモートのが百万倍楽だろ
何十時間費やしてご自慢の構成組み上げても、余人に理解できなきゃ
ポンツコアプリに堕するだけ お前亡き後後輩がハゲあがるわ
今日びのクライアントマシンならストレスも少なくて済む性能持ってるし
バッチは置けないけど鯖上でVBAならなんでもござれ ってのもな
シンクライアントなら尚更リモートで発想してやるのが環境にやさしいってもんだ

729:デフォルトの名無しさん
17/04/18 00:11:18.28 hjZqdERg.net
クライアントに
インストールは駄目なのに
バッチファイルは置いていい
とかwwwwwwwww

730:デフォルトの名無しさん
17/04/18 18:05:35.01 UkP+KrtI.net
業務委託契約として顧客に準備された制限の多い
環境下で業務をしています共有サーバも特殊である為、
理解出来ないような仕様が多いです
「別のaccess起動」はshell関数で対応する事で
解決出来ました
たくさんのご意見どうもありがとうございました

731:デフォルトの名無しさん
17/04/18 18:15:43.89 Uw8XacGP.net
はよ逃げ

732:デフォルトの名無しさん
17/04/19 12:26:18.06 j6KP6NRK.net
クライアントにACCESSインストール不可なのに
どこでどうやって「別のaccess起動」を解決できたのかすごく気になる
特殊なサーバってメタフレームとかじゃないだろうな

733:デフォルトの名無しさん
17/04/19 22:16:46.24 JHVKZFyT.net
インストール不可なのはランタイムだろ

734:デフォルトの名無しさん
17/04/20 06:20:13.83 1KNeIeUu.net
>>703
これだな
別にクライアントでaccessが使えないとは書いてないし
変な奴が揚げ足とって粘着してるようにしか見えん

735:デフォルトの名無しさん
17/04/21 11:31:18.08 cjUCDLpJ.net
accessVBAでファイルコピーをするのですが、
テーブルにある数値をコピー先のファイル名としてファイルコピーしたいのですが、
どうすればいいでしょうか?
テーブルには1フィールド1件のレコードしかないようにしています。

736:デフォルトの名無しさん
17/04/22 01:12:38.74 qUZ+Jwsq.net
コードはどこまで書けたのよ?

737:デフォルトの名無しさん
17/05/09 21:18:01.19 4Eh9wDDp.net
レポートにクエリを埋め込んだ場合、フィールド幅とかフォントとかって指定はできませんか?

738:デフォルトの名無しさん
17/05/09 22:38:58.26 ho5latp+.net
ひどく難しい質問だが :
 レポートのソースをクエリにしている、という意味なのか
   だとするとその一文は無用なのだが
 レポート上のテキストボックスにクエリのSQL文を埋め込み(貼り付け)
 たいんだが、それぞれ文字数が変わるのでそのテキストボックスの
 フィールド幅とかフォントを自在に変えたいのか
下の意味だとしたら cf. URLリンク(www.newsbit.org) 幅は変わらないけれども
Verが2010以上なら cl. URLリンク(mukkumuku.blogspot.jp) とか

739:デフォルトの名無しさん
17/05/09 22:42:38.49 ho5latp+.net
なんだよ cl. って、こっ恥ずかしい cf. confer 【参照】の意味で

740:デフォルトの名無しさん
17/05/09 23:10:41.56 4Eh9wDDp.net
>>708
残念ながらどっちでもないです。

1枚のレポートの中に複数のクエリの結果を表示させているのだけど、幅サイズ指定どころかフォントすら指定出来なくてこまっているんです。

741:デフォルトの名無しさん
17/05/09 23:42:18.10 ho5latp+.net
そのクエリの結果をそれぞれ個別にレポートに仕上げる分には
フィールド幅とかフォントを固定できるものなのか?
一つのクエリでならMaxサイズがそれぞれのフィールドで指定できるものなのかを聞いてるんだが

それができるなら個別にレポートを作って、最終的に一つのレポートにそれぞれをサブレポートとして
埋め込めば可能だろうが、個別のクエリでもフィールドサイズが都度都度変わるものだとしたら
無理気味な気が  つか、そこまで可変を重要視するならフォームに表示してそっちで印刷・・
現物に当たれないからフォームでの仕様は後日確認してみるけど

742:デフォルトの名無しさん
17/05/10 11:27:46.90 Cp7+CNi6.net
Accessのレイアウトは鬼門だよなぁ

743:デフォルトの名無しさん
17/05/10 11:34:50.56 9XlEtVx1.net
お手軽だけど細かいことはできないんだよね

744:デフォルトの名無しさん
17/05/10 11:37:58.15 Cp7+CNi6.net
AccessからExcelに書き出して印刷まで自動化した方がうまくいくこともある

745:デフォルトの名無しさん
17/05/15 05:55:17.74 eTrrYCJR.net
フォームコントロールを自動で
美しく配置するツールを作りました。

需要ありますかね。

もちろんレポートにも対応してます。

746:デフォルトの名無しさん
17/05/15 08:45:14.54 +qzB37uA.net
ソースにするクエリを選択します
作成タブのフォームをクリックします
美しいレイアウトのフォームが自動で作成されます

747:デフォルトの名無しさん
17/05/15 10:42:35.49 UIY4n9Gi.net
それは
ブサイクなフォームですよ

748:デフォルトの名無しさん
17/05/15 23:55:52.20 ChfDmfRH.net
まずは
美しいレイアウトのスクショを見てからだ

749:デフォルトの名無しさん
17/05/16 01:19:24.97 CV++bHOB.net
Access2000 Win7

例えば、 田中,安倍,中曽根,福田,小泉, 麻生 という文字列をフォームに順次入力したとき、
直近の5個をプルダウンメニュー化(コンボボックス?)して再入力の手間を省きたいです。

上で言えば、安倍より右なのでプルダウンメニュー化(コンボボックス?)すると

安倍
中曽根
福田
小泉
麻生

となって、中曽根を選んだらそれがフォームに表示(入力)されるという具合です。
VBAではどうすべきでしょうか? 何かヒントはありますか?

職場の都合上Access2000を使っていますが、これ以降のバージョンで可能ならそれも教えて下さい。

750:718
17/05/16 01:23:53.47 CV++bHOB.net
(補足)AccessのVBAも可能です

751:デフォルトの名無しさん
17/05/16 0


752:8:04:15.30 ID:VdvmUVsR.net



753:デフォルトの名無しさん
17/05/16 12:18:30.41 14hiXRCy.net
配列で変数に入れて、
値集合ソースにセットすれば?

754:デフォルトの名無しさん
17/05/16 12:19:41.22 14hiXRCy.net
strSQLで。

755:デフォルトの名無しさん
17/05/16 12:33:54.26 14hiXRCy.net
まあ、でも次回開いた時に
直近のを表示したいって事なんだろうから
やっぱりテーブルに保持して
それを表示してやる感じかね。

756:718
17/05/16 12:53:25.27 CV++bHOB.net
>>721-724
色々有難うございます。
すいません、AccessのVBAのスレで>>720を書いてしまいました。完全にネボケていました

757:デフォルトの名無しさん
17/05/16 12:59:39.86 Gxqu5M/V.net
そもそも質問の意味がわからない。
任意のリストをコンボボックスに表示する方法は分かってる?
或いは指定テーブルの指定フィールドをコンボボックスに表示する方法とか。
それが分かれば技術的な問題じゃ無くて頭の問題でしょ。

758:718
17/05/16 13:12:32.50 CV++bHOB.net
>>726
職場では検証や練習の時間が取れないので、自宅で練習した上でやりたいのですが
自宅にはAccessが無いので上記のような質問になってしまいました。

759:デフォルトの名無しさん
17/05/16 14:13:45.32 Gxqu5M/V.net
>>727
いや、それは分かるけどコンボボックスに何かを表示する方法は分かってるのかという話。
それが分かれば後は頭の体操の話でしょ。

任意のリストでやるなら5個の文字列を連結したものを都度作成すれば良いし、テーブルでやるならUNIQUEにして追加削除すれば良んじゃね。

760:デフォルトの名無しさん
17/05/16 22:08:47.69 g0o7D5lq.net
田中,安倍,中曽根,福田,小泉, 麻生 ・・・ がどう入力されるかだけど
田中,安倍,中曽根,中曽根,田中,小泉,福田,小泉,安倍, 麻生 ・・・
とかだと直近の重複しない名称が都度ドロップダウンリストボックス内で
変化していきそうで、それはそれで入力時に戸惑いそうだが

ドロップダウンリストボックスのソースを重複クエリ(>>723の言うstrSQLでもいいけど)で
セットすればいちばん簡単だけど、直近を抽出するにはレコード番号とか入力日時とか
を基準にして並べ替えする てことかな

氏名は例だろうけど、現物は何だろ? 面白そう 入力のたびに「あれ?」「ん?」って
声が聞こえて来そうだ(本人が使うんじゃ無ければ)

761:718
17/05/16 22:31:51.86 CV++bHOB.net
>>729
現物は顧客リストとパートナー営業さんのリストです

勿論、上記の氏名は例ですが、中曽根さんのデータを呼び出して30分くらい経って
「中曽根さんの○○の項目を更新忘れていたわ」ということが多々あるので、一旦呼び
出した人は履歴から簡単に再呼び出ししたいです。

平たく言うと、WebブラウザのHP履歴みたいなもんです。

762:デフォルトの名無しさん
17/05/16 22:59:07.91 9DoKORjf.net
オートコンプリートね。
テンポラリテーブル作るのが
一番簡単かと。

763:718
17/05/18 02:38:44.45 v5KhOq09.net
>>731
ありがとう

764:デフォルトの名無しさん
17/06/06 14:35:30.83 7I4Q1TJn.net
フォームから入力されたデータってレコードソースで指定しているクエリのテーブルに格納されるって認識あってますか

765:デフォルトの名無しさん
17/06/06 14:38:41.23 7I4Q1TJn.net
>>733に追記です
DoCmd.RunCommand acCmdSaveRecordで保存されたデータはレコードソースのテーブルに格納されるでいいでしょうか。
基本的な質問ですみません

766:デフォルトの名無しさん
17/06/07 12:39:00.78 m3sH3bSc.net
テキストボックスが連結されていれば入力内容はテーブル(の連結フィールド)に保存されます。

767:デフォルトの名無しさん
17/06/07 12:47:43.50 bbXeH7ar.net
>>735
すみません、テキストボックスとは何を指してますか、クエリのソースですか?

768:デフォルトの名無しさん
17/06/07


769:22:15:49.46 ID:JlTkUU5d.net



770:デフォルトの名無しさん
17/06/07 22:22:23.86 +eS8ypoQ.net
何やら禅問答の様相を呈しているようだが
その入力フォームのレコードソースがクエリで、対象のテーブルに保存できるか?
という質問なら、DoCmd ・・・なんぞを使わずともレコードが移動した時点で保存される

ソースの無いフォーム上のテキストボックス群(等)に入力して、例えば[保存ボタン]などで
対象のテーブルにデータを保存するような使い方の場合には、その DoCmd ・・・を使って
それぞれ保存したいフィールドに各テキストボックス群(等)のデータを保存する でよろしいか
テキストボックス、コンボボックス、リストボックス、チェックボックス等々があるから・・群(等)と書いたけど

771:デフォルトの名無しさん
17/06/08 12:41:56.61 Gl6SA9F6.net
>>738
はい、フォーム上のテキストボックスに入力されたデータの保存について聞きたいのですが、レコードソースのクエリで複数テーブルが結合している場合、共通のカラムのデータは結合しているすべてのテーブルに保存されますか

772:デフォルトの名無しさん
17/06/08 21:37:20.87 QO2QuDWb.net
>>739
すみません、分かりません。
カラムっていうのは何だろ?フォームはデータシートビューなのかな。

773:デフォルトの名無しさん
17/06/08 22:12:23.06 ymWmjIat.net
百聞は一見の喩えじゃないが、二日費やしてる間に試しで入れてみれば
100ヶテーブル繋げてても全部入るだろ あ、Max32だったか しかも結合は16までか
じゃあ16で  で、へぇ、なるほど、こうなるんだ って理解に繋がる

774:デフォルトの名無しさん
17/06/09 14:32:01.31 273W91RO.net
>>740
カラムは列(項目)です
フォームビューです
本番環境で作業してるため、登録処理ができないので、教えていただきませんでしょうか

775:デフォルトの名無しさん
17/06/09 14:33:57.33 273W91RO.net
レコードセットがダイナセットで、レコードソースのクエリが2つ以上のテーブルを結合しているときの登録されるテーブルを教えてほしいです

776:デフォルトの名無しさん
17/06/09 19:37:19.10 arHWLDZ3.net
クエリが複数のテーブルからできていても
そのクエリのカラムはどっちのテーブルのカラムか区別されてるぞ

777:デフォルトの名無しさん
17/06/09 23:11:20.98 LJNVGfcK.net
>>743
フォームプロパティのレコードソースからクエリのデザインできるウィンドウを開きます。項目フィールドがどのテーブルのものか定義されています。
正確な名称で答えられなくてすみません。布団の中からなので。

778:デフォルトの名無しさん
17/06/13 12:35:22.53 CYlYHOF+.net
easyComm使ってrs-232cで測定器つないでデータ取る、みたいなのが得意な人いる?

779:デフォルトの名無しさん
17/06/13 15:22:33.36 mycfBP+w.net
いない

780:デフォルトの名無しさん
17/06/13 21:12:00.58 R7Yl4a9U.net
いませんか。仕方ない、コリコリ書くかな。

781:デフォルトの名無しさん
17/06/16 21:29:11.74 YDbGqV+E.net
出来た!動いた!
測定器の制御とか本当はvisual studioとかで作成するんだろうけど、パソコンの性能がいつの間にか上がっててACCESSでもいけたよ!

782:デフォルトの名無しさん
17/06/17 17:55:53.00 n14YEU6w.net
そのうち性能ωが上がってACCESSでBIGデータ扱ったり機械学習したりする時代が来るのか

783:デフォルトの名無しさん
17/06/22 11:21:35.79 1rSOLJ2h.net
すごい基本的な質問ですみません
accessのSQLの言語って何ですかね
MYSQLとかですか

784:デフォルトの名無しさん
17/06/22 15:04:17.20 +TFSs5XU.net
SQLが言語だよ
すとらくちゃーどくえりーらんげーじ
だったかな

785:デフォルトの名無しさん
17/06/22 15:25:40.99 9kjviait.net
質問の意味も意図もよくわからんね。
access以外のシステムからSQL文をコピペしたいってことなのか!?

786:デフォルトの名無しさん
17/06/22 15:27:59.87 T7aSUWBW.net
>>751
MYSQLもSQL。
仕様があって、それに沿って各社実装してる。
が、独自部分も多いから同じSQLだからといって何処でも動くとは言えない。

787:デフォルトの名無しさん
17/06/22 15:43:16.41 1rSOLJ2h.net
>>754
SQL言語もポスグレだったりPLSQLだったりあるじゃないですかそれで言うと何になるのか聞きたいんですけど

788:デフォルトの名無しさん
17/06/22 15:44:58.51 1rSOLJ2h.net
勘違いしてたらすみません
SQLとMYSQLの関係ってCとC♯の関係ですか

789:デフォルトの名無しさん
17/06/22 15:45:47.90 1rSOLJ2h.net
>>753
コピペでそんなこと気にする必要ありませんよね
気になったから質問したまでです

790:デフォルトの名無しさん
17/06/22 15:53:28.78 wdLd6PlL.net
SQLとMYSQLの関係は他人のSQLと自分のSQLの関係です
昔、金井克子という人が歌ってました

791:デフォルトの名無しさん
17/06/22 16:58:01.05 zFId4oiO.net
SQLというのはそれが言語
(たまにSQL言語以外の事をSQLと言っている場合もある)

ポスグレやMYSQLやACCESSはそのSQL言語を使う環境(の一部)
環境によりSQLに多少の差はある

ポスグレはSQL言語じゃない
PL/SQLはSQLを拡張した言語
ACCESSならSQLを超える範囲の言語はVBA

792:デフォルトの名無しさん
17/06/22 17:53:43.99 1rSOLJ2h.net
>>759
よくわかりました、ありがとうございます

793:デフォルトの名無しさん
17/06/22 21:11:47.56 f/XKrCgm.net
>>757
他のSQLの構文をそのままコピペしてAccessで使うのは
うまくいかないこともある ことを気遣ってくれたんじゃね?
そんな言い捨てるようなレスはいけないと思いますよ

794:デフォルトの名無しさん
17/06/22 21:17:42.32 t4uJuvar.net
>>761
なるほど
>>753失礼しました

795:デフォルトの名無しさん
17/06/22 23:45:58.46 Ddgcj+Nb.net
>>762
素直な態度の人は成長するらしいですね。
良い事良い事。

796:デフォルトの名無しさん
17/06/30 23:17:34.97 8BMFafeA.net
何でも良い、誰でも良いから質問すれ。

797:デフォルトの名無しさん
17/07/03 12:15:52.25 HFvRoHNk.net
変数の宣言を強制するにチェック入れたのに
Option Explicit
が出てこないのですが
どうしたら出て来ますか?

798:デフォルトの名無しさん
17/07/03 12:56:00.26 hBIZ2owM.net
既存のコードには入らないよ
新規で作成するオブジェクトには入る

799:デフォルトの名無しさん
17/07/04 16:03:28.67 ce7knrBK.net
Accessの神々よ、御教えを!
Accessでは、CHECK 句が使えないようですが、
カラム数が多いため、
いちいちプロパティから入力規則を設定するのは骨が折れます。
SQL で一括設定する方法をご伝授くださいませ~

800:デフォルトの名無しさん
17/07/04 22:10:20.82 WoXW+1QF.net
えー、クエリ作ってからSQL表示してコピペ。
そんな事聞いてないよね。

801:デフォルトの名無しさん
17/07/05 02:09:17.79 EckUEWaI.net
>>766
なるほどさんくす

802:デフォルトの名無しさん
17/07/05 10:03:04.42 Qpg00Afa.net
view

803:デフォルトの名無しさん
17/07/05 17:39:45.65 XEX8l1it.net
win7x64-office2016x86環境下のみで再現するらしい
xls出力からコペピ張り付け罫線操作等々やってる処理で張り付したシートがズレル不具合発生
ネット調べても一切情報でてこなくて期待込めてofficeアプデしたら実行時エラー1401
空白でないセルが云々カンヌん泣きたい

804:デフォルトの名無しさん
17/07/20 13:40:54.23 AoFZnXDG.net
自己レス
office365BPの2016でのみ再現
別シートの複数列コピー選択状態でAAセレクトインサートやろうとするとコピーペになる
セレクト前に空白セル1コピーで回避

805:デフォルトの名無しさん
17/07/21 16:32:01.78 28Rvh+yS.net
クエリを実行したときに全件レコードを取得できてないのに検索結果画面が開くときってない?
▷|←このボタン押すと検索結果の件数が出てくるんだけど、押してから出るまでに時間がかかるってことは全件レコード取得できてないってことだよね

806:デフォルトの名無しさん
17/07/21 16:32:40.55 28Rvh+yS.net
この現象を何なのか教えてほしい

807:デフォルトの名無しさん
17/07/21 17:16:56.11 PYWMukgm.net
表示した後でも数字が勝手に増えるってこと?

808:デフォルトの名無しさん
17/07/21 17:49:46.53 28Rvh+yS.net
>>775
いや、クエリのSQLをorderby句を書かなかったとき、全件検索する前に検索結果画面が開く

809:デフォルトの名無しさん
17/07/21 17:55:49.86 28Rvh+yS.net
①orderby書いてクエリを実行する→1/2500みたいに結果件数がでる
②orderby書かないでクエリを実行する→1 結果件数が上記と違いでない
▷|このボタンおすと上記と同じように1/2500となる

①の実行時間10秒
②の実行時間1秒 ただし▷|ボタン押すと10秒くらいかかる

810:デフォルトの名無しさん
17/07/21 21:47:28.80 GPYD2Qke.net
なんかオプションに無かったかな。最初の表示するぶんだけ読み込んでとりあえず見せておいて裏で続きを読むって機能をオンに、みたいな。

811:デフォルトの名無しさん
17/07/24 04:02:58.29 UL92A3MD.net
>>778
あれば教えてほしいですね

812:デフォルトの名無しさん
17/07/24 15:06:22.21 BdqEvISL.net
あった気がする

813:デフォルトの名無しさん
17/07/25 22:56:57.38 EiidKUEl.net
会社テーブル
id  会社名  ・・・
1.  A社
2.  B社
3.  C社
4.  B社

職員テーブル
name  会社id  ・・・
山田.  1
鈴木.  1
飯田.  2
野口.  3
岡本.  4

一対多のリレーションがありまして
会社マスターにダブり登録されている場合(この場合B社)
楽に修正する方法はないでしょうか

250社くらいダブリやトリプルしていて困っております

814:デフォルトの名無しさん
17/07/26 07:07:59.14 wP3Z6w42.net
名寄せマスター
名寄せID 会社ID 新会社ID
1      2     2
1      4     2

名寄せマスターと職員テーブルをJOINしてUPDATE
というのはどうですか?

815:デフォルトの名無しさん
17/07/26 07:12:28.72 XR9PfPcp.net
その会社マスターがおかしいのを放置するのか修正するのかで違ってくるよね

816:デフォルトの名無しさん
17/07/26 16:42:27.76 Pvb1ow9Q.net
合併したんかね

817:デフォルトの名無しさん
17/07/27 20:31:02.25 6NlFfxVd.net
>>782
なるほど
重複クエリに各会社の最小IDを連結して名寄せテーブルを作成し
JOINしてUPDATEしました

名寄せテーブルを作成しないでクエリだけでUPDATEまでもっていくのは
この場合駄目なんですね はじめ理解できず悩みました

>>785
JOINしたAccessのデータをExcelに吐き出し各職場に配布、各々で修正追加。
一年以上たって回収しAccessに貼り付けられて今の状態です。
正確には職員テーブルじゃなくて顧客テーブルですね

818:デフォルトの名無しさん
17/07/27 20:40:42.96 DKmshiqQ.net
なあんだ、Excelの段階で調整しちゃえば余計な苦労しなくて済んだのに

819:デフォルトの名無しさん
17/08/01 21:53:22.72 FQn2qD+M.net
初心者なんで教えて欲しいんだけど、フォームの次へボタン押した時に次のレコードが
表示されないのだがどうしたらいいか教えて欲しい。バージョンは2013
Private Sub Form_Load()
Dim db As DAO.Database
Dim rs As DAO.Recordset
Set db = CurrentDb()
Set rs = db.OpenRecordset("名簿テーブル",dbOpenTable)
Me!名前テキスト = rs!名前
Me!カナテキスト = rs!よみがな
End Sub
Private Sub 次へボタン_Click()
DoCmd.GoToRecord , , acNext
End Sub

820:デフォルトの名無しさん
17/08/01 22:21:37.22 16hy4odR.net
フォームのソースが名簿テーブルならフォーム読み込み時の名前とよみがなセットするコードは無くても先頭レコードが表示される。
フォームのソースを確認しましょう。
非連結フォームならボタン押した時に次のレコードを読み込んで名前とよみがなセットするコードが必要だけど、キーが不明なので何ともアドバイスできません。
長々と書いたがわかりにくいね、すまん。

821:デフォルトの名無しさん
17/08/02 22:57:21.98 GleVclNw.net
>>788
ありがと

822:デフォルトの名無しさん
17/08/28 11:23:53.36 XLKoN0Ik.net
神さま教えてください。
ADODB.Commandでのインサートが失敗しても
エラーが出ないのですが、エラーハンドリングの
方法を教えてください。
よろしくお願いします。

823:デフォルトの名無しさん
17/08/28 21:14:51.01 6Oo2q0tu.net
on error

824:デフォルトの名無しさん
17/08/29 08:37:26.00 SOL0jppX.net
むしろonerrorしかないと思うが、他にやり方あんの?

825:デフォルトの名無しさん
17/08/29 09:14:08.50 WIE1SoZ9.net
レスありがとうございます。
ON ERROR は当然やってまして
その上での質問です。

826:デフォルトの名無しさん
17/08/29 21:25:59.80 BqQa7G9t.net
失敗ってなんだ。
戻り値を取ればAffectedRowsになってるだろうから
それで判断するか追加されたはずの行数をあらためSELECTするとか

827:デフォルトの名無しさん
17/11/15 11:14:08.03 PQCfnSyv.net
>>787
そのコードはFormがLoadされた時に名簿テーブルを開いてRecordsetに格納し、名前とカナをテキストボックスに入れるというものと次へボタンを押した時にFormがLoadされた時の処理とは全く関係なく次のレコ-ドに移動するもの。
ところで次へボタンでの次のレコ-ドってのは何のデ-タなんだい?
改めて言うけどFormがLoadされた時の処理なんて知らないからとAccess君は言っている。
要は、DoCmd.GotoRecordってのはデータとオブジェクトが連結されていることが想定されていて、連結されているから既にオブジェクトにレコードが表示されているわけだが、それに対して次のレコ-ドと言ってる。
一方、FormのLoad時の処理は連結関係無くデ-タを自ら取ってくるもの。
こちらのやり方を取るならRecordsetをPublic変数にするかForm内でのPrivate変数として保持しておき、他のイベント(次へボタンクリックのような)で使いまわすというやり方になる。

828:デフォルトの名無しさん
17/11/22 10:10:39.42 as8vu/t7.net
整数型、重複なしの列を書き換えるときはどうしてますか?たとえば、
2 1
3 → 2
1 3
にしたいときに2→1の時点でエラーが出ると思うので回避策を検討しています。
一時的に重複なしを解除して、終了時点で重複なしへ戻す方法や、一旦一時的に重複しない数字に書き換えて、それから再度書き換えるべきか悩んでいます。
なにか一般的な方法はございますか?

829:デフォルトの名無しさん
17/11/22 10:11:55.37 as8vu/t7.net
あれ、スペースがおかしくなっている。
列を書き直すときにたとえば
2→1
3→2
1→3
としたいのです。具体的にはidを振り直す作業です。

830:デフォルトの名無しさん
17/11/22 12:23:57.98 TDbCG25M.net
レンジのソートでよくね?
もしくはフィルタ付けて並び替えてからフィルタ解除とか

831:デフォルトの名無しさん
17/11/22 12:27:01.49 taN4cymO.net
idには触らないで、整数型のフィールドを追加します。そのフィールドでやりたい放題やります。

832:あ
17/11/22 12:46:48.77 MjBhGus4.net
どうしてもやりたけりゃ、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
でCASEで書いちゃえば入れ替えられる。
1クエリ内で完結したら、制約はかからない。

833:デフォルトの名無しさん
17/11/22 13:21:54.54 as8vu/t7.net
>>798
済みません。AccessにもRangeというのがあるのですか?あと、フィルターの使い方も御教示をお願い致します。
>>799
それが、当該idを参照しているテーブルが20個以上あるので、別のコラムという訳にはいかないのです。
参照先を変更するとなるとクエリやらVBAのコードやらを書き換えないといけないので大変だと思います。
>>800
バブルソートみたいなものですね。レコード数が3万ありますので、何となく時間がかかりそうな気がしますが、試してみます。
今はソート後にDMax+iのループで重複しないidへ書き換えて、書き換えが終わってからDMaxを引くという2段階の作業をしています。
(参照元のidも2段階の書き換えをしています。))
我ながらドン臭いやり方だと思うので、もう少しスマートな方法があれば御教示をお願いいたします。

834:デフォルトの名無しさん
17/11/22 15:00:03.20 t4MJ2LxN.net
その列自体を書き換えちゃうの?
じゃあ、今入ってる値は必要無いってこと?
だったら削除して連番振り直したら?

835:デフォルトの名無しさん
17/11/22 15:02:12.97 TZAtmSaI.net
今の時代なにが楽しくてAccessなんてやるんだ

836:デフォルトの名無しさん
17/11/22 15:50:01.09 as8vu/t7.net
>>802
idだから主キーです。Nullは不可だと思います。

837:あ
17/11/22 16:48:33.62 QspO8Ati.net
>>801
もう組み合わせがわかってて、ほんとに単発で1回きりなら、
エクセルで対比表作って、CASEの列とWHENの列足してコピペでクエリ作っても良いけど、全く健全な保守ではない。
2 1
3 2
1 3
に列追加してオートフィルで
WHEN unique= 2 then 1
WHEN unique= 3 then 2
WHEN unique= 1 then 3
ってして、
unique= CASE

ELSE UNIQUE endで挟んで、コピペでテキストエディタに貼り付けて、テキストエディタからコピペでAccessに貼り付けるやつ。
しょっちゅうやるならテーブル見直そう。

838:デフォルトの名無しさん
17/11/22 16:57:08.62 QHiNhW2y.net
>>804
方法はいくらでもあると思うけど。
Field追加して連番を振って、追加したFieldを主キーに変更して元の主キーのFieldを削除するとか。
試してないからできるか分からんけど。
そんなことせずに振りなおすならOrderByでId順にして小さい値から振りなおしたら?

839:デフォルトの名無しさん
17/11/22 16:59:54.83 QHiNhW2y.net
ただ、主キーを振りなおす意味が分からない。
そういうもんじゃ無いと思うし、テーブルの連結によっては滅茶苦茶になるのは分かってるよね。

840:あ
17/11/22 17:57:43.64 QspO8Ati.net
主キー振り直すのは、やむを得ずやるのはそのアプリのライフタイムに何発かあると思う。
業務系だと、「スキーマ変えるな」「デカいトランザクションはるな」「一時テーブルすら作るな」とか無茶苦茶言いよることもある。
でも、しょっちゅうやるならホントに設計考えたほうが良い。

841:デフォルトの名無しさん
17/11/22 18:29:23.78 2YVJuPMl.net
別に列作ってそっち主キーにすれば?

842:デフォルトの名無しさん
17/11/22 23:10:16.27 as8vu/t7.net
>>806
>>そんなことせずに振りなおすならOrderByでId順にして小さい値から振りなおしたら?
そんなことが出来るのですか?DAOもADOも1行ずつしかupdate出来ないから、重複データーが発生してしまって出来ないのですが…
>>807
ワークテーブルまで含めて数えなおしたら、35個のテーブルで件のidを使用していました。なので35個のテーブルに対して変更を行わないといけませんね。

843:デフォルトの名無しさん
17/11/22 23:11:54.97 as8vu/t7.net
>>809
それで解決するなら簡単ですね。やってみたいですね。
元の列の属性がすべて引き継がれるならいいですね。試してみます。

844:デフォルトの名無しさん
17/11/23 09:57:12.17 wkO+ZdSN.net
主キーの役割はレコードをユニークにすることだろ
並べ替えが必要ならそのための項目を別に用意するわ
作業量を問題にしてる


845:けど 無茶な運用は後に響くよ 分かり易さを優先すべきだと思うわ



846:デフォルトの名無しさん
17/11/24 12:10:31.02 fRZqdK5G.net
主キーを解除して、重複可にして連番を書き込みました。その後に元に戻しました。変更前後の番号を配列に書き込んでおいて、その配列の値から関連するテーブル全部において置換作業を行うことにしました。
idが2万5000レコード、関連するテーブルのレコードが全部で100万近いのですが、2万5000の置換を100万レコードに対して行うので時間がかかりそうな気がしています。どのくらい時間がかかるのか計算する方法がありますかね?

847:デフォルトの名無しさん
17/11/24 12:21:50.25 Q2HEJk5l.net
accessにSQLコストを計算する機能はないよ

848:デフォルトの名無しさん
17/11/24 19:17:11.31 fRZqdK5G.net
主キーの削除をVBAでやろうとしているんだけど、メソッドが見つからない。SQLでやるしかないのかな?
下を読むとdeleteメソッドはダメみたいだし。
URLリンク(msdn.microsoft.com)
>>Deleteメソッドは、インデックスオブジェクトが新しいと、データベースに追加されていない場合にのみサポートします。

849:デフォルトの名無しさん
17/11/25 10:30:03.03 eU9hnSW+.net
無理矢理面倒臭い事をしているようにしか思えない
まぁ人の話を聞く気が無いみたいだし
好きに調べてやればええよ

850:デフォルトの名無しさん
17/11/27 17:21:43.17 twASlFZz.net
SQLであっさり出来たわ。後は置換をどうするかだな。関連するテーブル全部を置換できればすべて解決するけど、何を使うかだな。
SQLは遅いんだっけ?レコードセットでループ回す方が速いと読んだ気がする。

851:デフォルトの名無しさん
17/11/27 22:26:05.40 HF1f2kGW.net
>>817
普通に考えればSQLの方が速いに決まってると思ってたが。
遅いとしたらその文書いた奴が悪いという印象。
ま、DB系については大したレベルにないから俺が間違ってるかも。

852:デフォルトの名無しさん
17/11/28 05:38:20.27 GeGdCCsE.net
業務用ソフトのテーブルを眺めていたら、テキスト型のフィールドがあって、256桁の数字が羅列してあった
様々な設定を指定された桁に格納しているようですが、このようなデーター保存方法は一般的なんでしょうか?
他の言語でもあるのでしょうか?

853:デフォルトの名無しさん
17/11/28 05:58:01.76 Brt1t867.net
>>819
あるんじゃないの?としか。どんなテーブルとか、フィールドの名前とか、なんかヒントはないですか? 様々な設定も謎が深まるだけですね。

854:デフォルトの名無しさん
17/11/28 09:43:49.19 GeGdCCsE.net
たとえばあるフォームAのオプションボタンの値を98桁に書き込む、フォームBのチェックボックスの値は例えばCstr(Abs(True)))でstringへ変換して105桁に書き込むとかそんな感じです。
合理的な気もするのですが、こういう方法は検索しても見つからないので一般的なのか、特殊なアイデアなのか知りたくなりまして。

855:デフォルトの名無しさん
17/11/28 11:59:57.14 vHFzkUKA.net
すくなくともRDBを使う上ではやるなって言われてるやり方
固定長ファイルにデータ保存してるようなシステムなら結構あったけどね

856:デフォルトの名無しさん
17/11/28 16:08:53.51 GeGdCCsE.net
>>822
そうなんですか。面白そうな話しなので調べてみようと思います。その手法はどういう名称なんですか?もしくは検索ワードを御教示頂けましたら幸いです。

857:あ
17/11/28 18:29:06.23 i1R8M5pm.net
RPG区分列とかじゃないの?古い呼び方だけど。
酷すぎてだれも触りたくないやつ。
RDBに移すような事があったら、末期には照合順序をbinaryにするしか無くなったりすごく苦しむから辞めた方がいい。
メリットらしいメリット無い。LIKE


858:で雑に'[A-C]__1_2'みたいにSELECTできることぐらい。



859:デフォルトの名無しさん
17/11/28 18:44:14.15 GeGdCCsE.net
残念ながら、ググっても何もヒットしません。
なにかヒントをお願い出来ますか?

860:デフォルトの名無しさん
17/12/01 16:18:17.01 xc+Vk5Dr.net
RPGとRDBで検索したら関係ありそうなのがいくつかヒットしたけど。
検索能力は俺の方が上みたいだな。

861:デフォルトの名無しさん
17/12/02 14:50:26.76 EvURnJTn.net
固定長ファイルでぐぐったら、先頭に固定長データファイルとはっていうサイトがでたけど
なにでどうググったんだか

862:デフォルトの名無しさん
17/12/04 10:19:55.17 eu/J6Nzp.net
皆様、御指導、御鞭撻ありがとうございます。
COBOLでよく使う手法だったんですね。
件のmdbはコボラーが設計したんですかね。

863:デフォルトの名無しさん
17/12/04 23:04:21.85 HIES1UEg.net
言語の問題じゃ無いと思うが

864:デフォルトの名無しさん
17/12/05 01:17:27.21 jk/z017d.net
そうなんですか。accessの本には全く載っていないでのすが、RDBMSの世界ではごく一般的な手法なんですか

865:デフォルトの名無しさん
17/12/05 13:50:48.83 JFWc1rHJ.net
ISAM

866:デフォルトの名無しさん
17/12/05 14:44:30.03 LtpZx+mu.net
>>830
>>822

867:デフォルトの名無しさん
17/12/05 16:01:26.32 jk/z017d.net
言語の問題ではない
しかしRDBMSではやってはいけない
よくわからないけど昔のデーターベースの本を読んでみますわ
暇つぶしにちょうどいいわ

868:デフォルトの名無しさん
17/12/05 17:17:16.01 Jckjy/ZT.net
自分たちが使うデータをどういった構造で保持するかは各自で考えて構わない
ただRDBに入れるのであれば、やってはいけなくもないけど、おすすめはしない、という話では?
RDBならテーブル・フィールド分けてデータもコードも見やすくできるのに、そうしないのはもったいないというかなんというか

869:デフォルトの名無しさん
17/12/05 19:05:27.76 IwqbiEq4.net
結局何の解答にもなってないw

870:名無し
17/12/06 08:23:07.59 qK37T0GP.net
データベースの列が増やせない何かがあった。
開発者の気まぐれ。手抜き。
従来の固定長ファイルと1:1の情報を保持したかった。
とかね。。。
こっちの業界じゃ拡張DM形式なんて固定長ファイルが普通にやり取りされてて、桁数制限とかが厳しいけど、容量の割に情報量が多いし古いソフトの互換性があるとかで100年以上生きると思うわ。
でも固定長ファイルの文字列をmdbに格納するのは正気とは思えない。データベースのメリット全部殺してるじゃん

871:デフォルトの名無しさん
17/12/06 08:50:38.97 3RgxoH/J.net
固定長レコードw化石乙ww

872:デフォルトの名無しさん
17/12/06 09:56:13.57 +yD4mhv+.net
郵便とのやり取りは今でも固定長フィールド使てんじゃね
さすがに今はないか、フロッピーとか

873:デフォルトの名無しさん
17/12/06 11:12:29.56 dYt4FwS2.net
未だに固定長を扱う事はありますが、設計済みDBに展開して処理していますよ

874:デフォルトの名無しさん
17/12/07 05:51:08.35 opi4zWAm.net
固定長のEDI、増えたりしないだろうけどいつまでも残るんだろなあ。csvやtsvをメール添付で良いのにって思う。

875:デフォルトの名無しさん
17/12/07 12:12:58.82 NfkoL/Di.net
固定長の方がパースが軽いからなぁ
あといつまでもなくならないレガシな環境とかな
処理系そのものは変更されてもIO部分の仕様変更はなかなかやらない

876:デフォルトの名無しさん
17/12/07 12:15:15.31 YN66KLn


877:O.net



878:名無し
17/12/07 17:45:46.41 d4TqII+f.net
>>840
同じ拡張子なのに何十種類もバリエーションのある欠陥フォーマットを使うのはやめてくれ

879:デフォルトの名無しさん
18/02/05 10:45:37.49 e967XxUr.net
アクセス始めて触る初心者です。
テキストボックスが複数含まれたワードファイルが5000個ぐらいあります
各テキストボックスからいろんな項目を取得するとして、1ファイルあたり30項目ぐらい
つまり5000個のファイル*30項目=15,000項目
これをアクセスで処理していこうと思ってるんですが、アクセスはこの程度さくさく処理できるものでしょうか
目的は、ワードファイルが多すぎて邪魔なんで全部削除したい。必要に応じて元のファイルと同じものを再現できるようにするため、必要な情報をアクセスのデータベースに保存しておくことです
必要なファイルを再現できるように検索機能と再現機能をもったVBAマクロを組むつもりです
最初エクセルでやろうとも思ったのですが、さすがに万単位で今後も増える可能性が高いため
アクセスかな?と思ったのですが、どうでしょう

880:デフォルトの名無しさん
18/02/05 13:37:19.07 KJpDTktT.net
>>844
初めて触る様な状態なら無理だから、諦めた方がいいですよ

881:デフォルトの名無しさん
18/02/05 13:53:17.30 e967XxUr.net
>>845
アクセスは初めてだけどエクセルVBAはそこそこ経験あります
エクセルVBAでなら自分で組める範疇ですね
すでにアクセスで途中までマクロは組んであります
同一フォルダ内にテスト用に作成してあるワードファイルを順次開いてすべてのテキストボックスの値、位置関連の数値を
Debug.Printで出力後、ワードファイルを閉じる
ここまでうまくいってるんであとはアクセスの基本機能理解すればそう困難ではないでしょう
ざっとみたところ、この用途で使う限りではそう複雑なものでもないようですし。
質問の内容はアクセスでやる利益があるかどうかという点ですね
まぁ組めばわかるんですけどね

882:デフォルトの名無しさん
18/02/05 20:59:27.31 +YlQ+DNK.net
>>846
エクセルのテーブルに格納したらアクセスにインポートするのが良いんじゃない?
エクセルのままでも良いと思うけど、

883:デフォルトの名無しさん
18/02/06 08:18:15.16 YHjH5DQb.net
>>847
それいいですね
やってみます

884:デフォルトの名無しさん
18/02/06 14:52:40.80 Y79w2nNG.net
貴乃花親方にしろ有賀さつきにしろ
やはり「語らない」ことが年末から今年にかけてのポイントだな
逆に語っている方が何かと物議を醸しているし

885:デフォルトの名無しさん
18/02/06 14:53:16.21 Y79w2nNG.net
ミスった
すまん

886:デフォルトの名無しさん
18/02/07 11:19:44.29 mhmm9auu.net
医療過誤?

887:デフォルトの名無しさん
18/04/14 12:06:32.62 bV7+SAsd.net
すみません質問させてください。
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
このコードは何をしているのでしょうか?
ご回答よろしくお願いします。

888:デフォルトの名無しさん
18/04/14 12:24:03.37 2RkkR2xg.net
一秒毎に画像を出したり引っ込めたり

889:853
18/04/14 12:53:27.07 bV7+SAsd.net
ご回答ありがとう御座います。
イメージはなんとなく掴めたのですが、
この場合のintShowPictureには何が格納されているのでしょうか?
もしくはBoolean型なのでしょうか?

890:デフォルトの名無しさん
18/04/14 16:08:38.27 1T8oabCl.net
Static intShowPicture As Boolean
にして試してみろよ

891:デフォルトの名無しさん
18/04/14 19:25:20.18 cGW/rI9o.net
VBAには暗黙の変換ってのがあるから
IntegerをBooleanに暗黙的に変換して評価してる
まあ、あまり良いコードじゃないな

892:851,853
18/04/14 21:39:02.03 criYFAGW.net
>>853さん
試しに、フォームと画像を用意して作ったら、点滅しました!
>>855さん
この文でも点滅しました!
>>856さん
Falseが0でTrueが-1なのですね!
ご回答ありがとうございました。
解決しました!

893:デフォルトの名無しさん
18/04/15 10:38:49.74 E1b18XLI.net
>Falseが0でTrueが-1なのですね!
そうだっけ?

894:デフォルトの名無しさん
18/04/15 12:40:33.57 VXOW+WoG.net
Access で画像を点滅する?
そんなの普通は、JavaScript, jQuery とかだろ

895:デフォルトの名無しさん
18/04/15 22:05:01.30 4uH7KTiu.net
ここは Access の質問スレですよ

896:デフォルトの名無しさん
18/04/21 00:22:50.08 IpoNn3EX.net
10万件以上の大量レコードを追加するインサート処理をクエリを作成してDocmd.OpenQueryでやっているが時間が1分以上かかる
この処理をモジュールにADO、もしくはDAOでインサート処理を記述したら、Docmd.OpenQueryより早くなるかな?

897:デフォルトの名無しさん
18/04/21 12:05:09.74 M/Q9a6+d.net
VBAで書くと数倍遅くなるんじゃね?
Cからなら速いかも知れん

898:デフォルトの名無しさん
18/04/21 14:39:22.47 JSWmVJf3.net
たぶんクエリのほうが遥かに速い

899:デフォルトの名無しさん
18/04/21 16:21:47.73 Zke6MJB8.net
OpenQueryをCから実行

900:デフォルトの名無しさん
18/04/21 17:48:56.41 e0mRRnZY.net
BULK INSERT は?
そもそも、INSERT文は速くならない!

901:デフォルトの名無しさん
18/04/22 14:54:13.01 QBM3hGX3.net
10万が大量かどうかという問題も有るがRecordset + AddNewの方が速いと聞いたし、実際俺が組んだ場合も明らかに早いんだが。
状況にもよるかもしれんけど。

902:デフォルトの名無しさん
18/04/23 02:01:29.71 zWK+uIrS.net
そもそもOpenQueryでどんなクエリ流してインサートしてるかわからんのに比較にならんわ

903:デフォルトの名無しさん
18/04/23 02:08:10.01 zWK+uIrS.net
>>866
例えば単純な追加クエリや、INSERT SELECTするSQL発行するより
1件ずつAddNewして(どこかから値持ってきて)1カラムずつ値セットするほうが早いっての?
どこで聞いた話だそれ?

904:デフォルトの名無しさん
18/04/23 09:13:20.51 /uUuSWda.net
やってみてから言ってくれ。
俺の場合は実際早かった。
俺の場合は1カラムずつじゃなくてフィ―ルド名の配列と値の配列でAddNewだけど、たぶん1カラムずつセットしてUpdateでも早いんじゃないかな。

905:デフォルトの名無しさん
18/04/23 09:41:02.27 Yo1LL5su.net
そんなあほな

906:デフォルトの名無しさん
18/04/23 15:45:02.07 YMq7Ch8w.net
SQLでもINSERT一回じゃなくて1行のINSERTを何度も繰り返したら遅くなるからな
それと比べるなよ

907:デフォルトの名無しさん
18/04/23 17:22:09.14 zWK+uIrS.net
>>869
やってみるから、フィールド数、フィールド長とレコード数教えれ
あと配列のデータどう用意するのかと、比較するクエリの元データどうすのかも
とうぜんACCESSと対象DBエンジンとADOかDAOのバージョンも明示してくれよ
で、ループまわして1レコードずつ.AddNewして.Updateするんだな

これでほんとにVBAが速いならちょっとACCESS使うの考えるわ

908:デフォルトの名無しさん
18/04/25 22:44:48.30 dGu0vJMQ.net
>>871
そんな低レベルの話はしとらん。
>>872
たぶんフィールドは40~50ぐらいじゃね?
レコードは200万ぐらい。
リモートでOracleに接続してる。
JOINで20個位のテーブル繋げてるな。
ADO使ってる。
パススルーのSELECTクエリ+INSERTじゃ永遠に


909:終わらない感じが20分程度で取得出来るようになった。 「access insert addnew 速度」でクグってみればけっこうAddNewの方が早い話が見つかるぞ。



910:デフォルトの名無しさん
18/04/26 20:39:25.51 /vLmdzNr.net
だからどこからどうやって元データ取ってきてるんだと
リンクテーブルやリモートDBでADOの方が早いとかなら別に驚くに値せんけどな
というかお前らOpenQueryってレコード数分実行する前提で話してたのか?

911:デフォルトの名無しさん
18/04/27 17:07:36.05 ash3pEtl.net
パススルーωとか使っちゃいけないTOP3じゃないか
素直にリンクテーブルにすれば良いのに

912:デフォルトの名無しさん
18/04/27 23:22:48.36 jiI6PjPI.net
パススルーって駄目なの?
リンクテーブルは話にならないくらい遅くてパススルーのが全然早かったんだが。

913:デフォルトの名無しさん
18/04/28 15:07:07.82 6AYZ4JmZ.net
ケースバイケース
たいていの場合、リンクテーブルに対する操作よりはSQL飛ばすほうが早いとは思うけどな
パススルーが使っちゃいけないTOP3とか初めて聞いたわ

914:デフォルトの名無しさん
18/05/09 09:34:09.66 OAputzVD.net
keydownイベントからのキー取得ではなくて、
OnKeyDownイベントからキーを取得する方法がわかりません。
Me("テキストボックス"& i).OnKeyDown = "=get_Key(" & this? & ")"
ご教授お願いします。

915:>>877
18/05/09 17:09:04.61 OAputzVD.net
レスが付かないので別の掲示板に移動します。

916:デフォルトの名無しさん
18/05/11 06:01:03.99 sj29e99C.net
>>878
OnKeyDownイベントを知らなくてすまん。

917:デフォルトの名無しさん
18/05/11 09:03:43.55 hWQk+urq.net
Excel で JavaScript も扱える様になるらしいね

918:デフォルトの名無しさん
18/05/16 14:07:17.01 aP5Z4SKQ.net
業務用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.
て書いてあってヤメレって書いてあるのになんでやりまくるのですかね?

919:デフォルトの名無しさん
18/05/16 14:57:23.49 Ml4MG34X.net
subの代わりにしてんじゃないの

920:デフォルトの名無しさん
18/05/16 18:06:12.59 xULU+qSI.net
>>882
しまった戻り値無いfunction俺も作ってた
動くから別にいいやって感じだった

921:デフォルトの名無しさん
18/05/16 19:24:53.85 DzLb+Dky.net
業務でプログラム組むような場合は、コーディングスタイルが指定されてる事が多いんだよ
正確には戻り値のないFunctiionじゃなくて、戻り値を無視してるだけだけどな

922:デフォルトの名無しさん
18/05/16 20:47:56.46 xULU+qSI.net
functionとsubはcallが要るかどうかの違いだと思ってた。

923:デフォルトの名無しさん
18/05/16 23:07:53.34 aP5Z4SKQ.net
可読性が低下する以外のデメリットは無いんでしょうかね?
個人的には出番のない変数は目障りなんですけどね。

924:デフォルトの名無しさん
18/05/17 00:12:37.33 e2hshpiX.net
呼び出しネストの限界がFunctionのほうが浅いってデメリットがあるはず
呼び出しに必要なスタック領域が違うから
昔だれかが実測してたな。まあ再帰でよっぽどのことやらんと問題ないんじゃね
SubをFunctionにして可読性が落ちるとか、それ関数の命名に問題がある気がするがな

925:デフォルトの名無しさん
18/05/17 08:14:31.45 JDzFkPHQ.net
戻り値ある前提で組んでるんでしょ。
エラー処理等で単に関数が失敗か成功かを返すとか。
後で作ろうとしてたけどグダグダになって無しになっちゃうとか。


次ページ
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch