2ちゃんねる スマホ用 ■掲示板に戻る■ 全部 1- 最新50    

■ このスレッドは過去ログ倉庫に格納されています

Access VBA 質問スレ Part1

1 :デフォルトの名無しさん: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
http://toro.2ch.net/test/read.cgi/tech/1327763113/l50


2 :デフォルトの名無しさん:2012/02/09(木) 00:43:50.48 .net
くその山

3 :デフォルトの名無しさん:2012/02/10(金) 08:46:53.06 .net
まさかの3

4 :デフォルトの名無しさん:2012/02/13(月) 03:22:20.27 .net
期待あげ

5 :デフォルトの名無しさん:2012/02/24(金) 00:33:06.69 .net
問題なく使えてるけど

6 :デフォルトの名無しさん:2012/02/24(金) 07:50:36.35 .net
とりあえず使ってみたいんだけど、解説してるwebページ教えて

7 :デフォルトの名無しさん:2012/02/24(金) 10:58:16.76 .net
うぜえ

8 :デフォルトの名無しさん:2012/02/24(金) 13:25:33.52 .net
>>6
http://www.geocities.jp/cbc_vbnet/
http://accessvba.pc-users.net/
http://vba.officehp.com/

ググればいくらでも出てくる罠。

9 :デフォルトの名無しさん:2012/02/24(金) 20:57:22.20 .net
>>6
とりあえず程度なら解説見ないで作れよ。

10 :デフォルトの名無しさん:2012/03/06(火) 16:43:20.41 .net
すいませんが質問です。
XPから7へ移行したいのですがaccessのvba上で
excelのマクロを操作してセルの中身を変えて上書き保存してたのですが、
今まで前面にexcelのメッセージで上書きしますか?的なメッセージが出てたのですが
7だとaccessが出っ放しでexcelがタスクに隠れてメッセージが前面に出てこないのです。
何かやり方ありませんか?ググり方すら分からない…アドバイス下さい;

11 :デフォルトの名無しさん:2012/03/06(火) 16:49:39.47 .net
>>10
ttp://oshiete.goo.ne.jp/qa/4876776.html

12 :デフォルトの名無しさん:2012/03/06(火) 17:05:38.78 .net
>>11
早々とありがとうございます。本当に嬉しい!!
しかし、自分で作ったメッセじゃなくてデフォルトの置き換えますかってメッセなんです。
XPから7に変わると設定変えるんじゃなくてvbaに追加せんと駄目なんですかね…無知でスイマセン


13 :デフォルトの名無しさん:2012/03/06(火) 17:46:46.30 .net
>>12
Excelのマクロ実行中にExcelをアクティブウィンドウに出来ればおK。

試してないが、この辺が参考にならないかな?
ttp://www.officepro.jp/excelvba/window/index2.html

14 :デフォルトの名無しさん:2012/03/07(水) 00:32:47.13 .net
すみません、フォームが開く順序は
Open→Load→…が規定だと思いますが、
Loadが飛ばされる条件はどのような条件か
ご存じの方いらっしゃいませんか?

15 :デフォルトの名無しさん:2012/03/07(水) 11:20:11.27 .net
HideしてShowするとLoadに飛ぶ

16 :デフォルトの名無しさん:2012/03/08(木) 16:02:20.11 .net
>>13
ありがとうございます。一度試してみます

17 :デフォルトの名無しさん:2012/03/12(月) 09:45:47.59 .net
すみません
ADOで新規にブール型のフィールドをテーブルに作成する場合、
VBAではどうかくのでしょうか
(テーブル).Columns.Append "XXXX", adBoolean
だとエラーになってしまうんですが

18 :17:2012/03/12(月) 10:52:54.08 .net
すみません環境を書きます
OS:Vista
Ver:Access2010(accdbファイルを使用。実際のコードはExcel2007ファイルに記述)


19 :デフォルトの名無しさん:2012/03/12(月) 14:16:24.17 .net
DoCmd.RunSQL "ALTER TABLE (テーブル) ADD COLUMN XXXX BOOLEAN;"

20 :17:2012/03/13(火) 01:56:43.81 .net
回答ありがとうございます
ただ他のフィールド(adGUID・ adInteger・adVarWChar)は問題なく
Appendできるので、SQL文ではなく、これらに合わせたADOXによる
コードにしたいと思ってます
んん、というかadBooleanのフィールドを追加するとtablesへのAppend時に
エラーとなる原因がどうしても知りたいです
散々ググったのですが、結局実際にadBooleanのフィールドを追加している
サンプルコードにはお目にかかれませんでした
何が原因なんだろう…
adBooleanの時はAppendの他に何か処理が必要なんだろうか…


21 :デフォルトの名無しさん:2012/03/13(火) 15:50:44.64 .net
Office2010 64bit版を使ってるのだとしたら32bit版に入れ替えてみると良いかも。
そうじゃないとしたら、参照設定でバージョンの違うADOモジュールを試すとか。


22 :17:2012/03/14(水) 01:05:25.66 .net
原因が分かりました
普段ACCESS使ってる人からは、当たり前やんけ!って怒られそうな話ですが
アドバイス下さった方もいらっしゃるので報告しますと
(テーブル).Columns.Append "XXXX",adBoolean
が原因ではなく、その次に入れておいた次の文
(テーブル).Columns("XXXX").Attributes = adColNullable
が原因でした
ブール型フィールドには初期値(True)があり、Nullを設定できないのにNull許容を設定したせいで
エラーになっていたようです
本やネットで情報漁って、ADOでEXCElからACCESSファイル作れてテーブルも作れるなら、ACCESS買わなくてもいいんじゃね?
なんて思ってましたが、ソフト買って普段からいじって慣れておいた方かいいのかも

23 :デフォルトの名無しさん:2012/03/15(木) 23:06:37.82 .net
ADOのDynamicPropertyについて
かなり詳細な解説が知りたいのですが、
なにか参考となるURLや書籍はありませんか?

24 :デフォルトの名無しさん:2012/03/17(土) 19:33:03.28 .net
Access初心者です。質問があります。
前任者のAccessで作られた業務ソフトを担当することになりました。

まずは全体を見通したいので、Basicのコードやコントロールのプロパティ、
イベントなど、すべての情報をテキストファイルに書き出したいです。

どうやったら良いのでしょうか?
Access2003 です。

教えてください。

25 :デフォルトの名無しさん:2012/03/19(月) 00:50:30.92 .net
コードはともかくとして、プロパティなんかは
自分でそれをリストするプログラムを書けばいい。


26 :デフォルトの名無しさん:2012/03/22(木) 05:39:40.85 .net
VBAでそんなこと出来るんですね。
どこかのHPにソースが公開されていないかな〜
参考になるページなど、探して見ます。


27 :デフォルトの名無しさん:2012/03/22(木) 21:28:12.01 .net
>>26
ツールならこのへんか
http://www.vector.co.jp/soft/win95/business/se397540.html
http://www.vector.co.jp/soft/win95/business/se130222.html
どっちもDAOとかCOMのAccess.Applicationオブジェクトで抜いてるだけだと思う

マクロ多用なら一回VBA変換すると見やすいぞ

28 :26:2012/03/25(日) 17:47:30.63 .net
>>27
情報サン・クスコ☆

29 :デフォルトの名無しさん:2012/04/16(月) 23:53:45.24 .net
hosyu

30 :デフォルトの名無しさん:2012/04/18(水) 00:22:57.54 .net
Accessで同時利用の限界ってどれくらい?
プログラム工夫すれば50人くらいは兵器?

31 :デフォルトの名無しさん:2012/04/18(水) 13:07:20.08 .net
50人がそれぞれ日一回違う時間帯に読み書きするとかならぜんぜん平気かもしれないよ

32 :デフォルトの名無しさん:2012/04/26(木) 11:59:42.32 .net
WindowsXP
Access2003

DoCmd.RunCommand acCmdSaveRecord
の使いようがよくわかりません。

例えば
テーブルA フィールド1〜3

についてフォームで値を入力できるようにしたとします。
フォームに入力して閉じるとテーブルのレコードは更新されています。

DoCmd.RunCommand acCmdSaveRecord
を使うとフォームを閉じる前の時点でレコードが更新されるんでしょうか?
しかしこの命令文を通過した後でテーブルを開いてみても更新されていませんでした。

33 :デフォルトの名無しさん:2012/04/26(木) 13:16:55.86 .net
馬鹿には無理

34 :デフォルトの名無しさん:2012/04/26(木) 15:30:07.48 .net
>>32
テーブルAを表示させたメインフォームの中に同じテーブルAを表示させたサブフォームを置いて

Private Sub 1_AfterUpdate()
End Sub

Private Sub 2_AfterUpdate()
 DoCmd.RunCommand acCmdSaveRecord
End Sub

と書け
メインに表示されたフィールド1を変更して、フォーカスをフィールド2に移すとサブに表示された内容も変わるメインに表示されたフィールド2を変更して、フォーカスをフィールド3に移してもサブの内容は変わらない
ただしどちらもメインフォームからサブフォームにフォーカスを移せば内容は変わる
これでレコードがどういうタイミングでセーブされるか判るべ

35 :デフォルトの名無しさん:2012/05/17(木) 20:45:31.33 .net
人の手でデータ加工する過程はすべてVBAに置き換えられるのでしょうか?


36 :デフォルトの名無しさん:2012/05/18(金) 03:27:32.55 .net
>>35
Access内でやっている限りは

37 :デフォルトの名無しさん:2012/05/19(土) 00:18:15.14 .net
import os
import win32com.client
MDBFILE = "test.mdb"
if os.path.exists(MDBFILE): os.remove(MDBFILE)
dsn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=%s" % MDBFILE
adox = win32com.client.Dispatch("ADOX.Catalog")
adox.Create(dsn)
adodb = win32com.client.Dispatch("ADODB.Connection")
adodb.Open(dsn)
adodb.Execute("create table hoge (id counter primary key, c1 varchar(10));")
adodb.Execute("insert into hoge (c1) values ('fuga');")
adodb.Execute("insert into hoge (c1) values ('hage');")
adodb.Close()


38 :デフォルトの名無しさん:2012/05/24(木) 11:34:52.22 .net
VBAじゃないんだけどmdbファイルからSQLで指定テーブルのフィールド名を列挙するSQLを教えてくださ

39 :デフォルトの名無しさん:2012/05/24(木) 11:40:53.57 .net
>>30
バックエンドにMySQLを使うといったようなクラサバにすれば50人だろうが
100人だろうが行ける。

40 :デフォルトの名無しさん:2012/05/25(金) 03:16:51.66 .net
>>38
了解

41 :デフォルトの名無しさん:2012/05/25(金) 23:17:09.33 .net
>>38
import win32com.client
adox = win32com.client.Dispatch("ADOX.Catalog")
adox.ActiveConnection = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=test.mdb"
for t in adox.Tables:
  if t.Type != u"TABLE": continue
  print t.Name, t.DateCreated, t.DateModified
  for c in adox.Tables(t.Name).Columns:
    print c.Name, c.DefinedSize, c.Type


42 :デフォルトの名無しさん:2012/07/04(水) 17:05:23.99 .net
Access2010(x86) Windows7(x64) PostgreSQL9

パススルークエリ+PostgreSQLの関数でナンバリング実装したんだが、

PostgreSQLの関数直接叩く →  1づつ進む
クエリをデータシートビューで開いてリロード → 1づつ進む
DLookup(結果フィールド, パススルークエリ名) → 2〜3づつ進む
ADOのExecuteでレコードセット取り出し → 2〜3づつ進む

になってしまう。(直接叩く&データシートビューで問題なしなので、VBAからの呼び出しの問題だと思う。)

試しにVBAの方にテスト用の関数(デバッグメッセージ出してダミーの値を返す)を作って
それを呼び出すパススルーじゃないクエリを作ってDLookUp実行してみたが、デバッグメッセージは1回しか出ない。
(Accessのパススルーじゃないクエリは1回の実行毎に1回しか開かれない?)

VBAからパススルークエリ実行する時は、1回の実行でも複数回(2〜3回)開かれるのか?
何とかして1回に1づつ進むように出来ないんだろうか・・・。

43 :42:2012/07/04(水) 17:12:27.30 .net
age忘れたorz

44 :デフォルトの名無しさん:2012/07/04(水) 19:17:26.30 .net
馬鹿には無理

45 :42:2012/07/05(木) 10:34:27.66 .net
>>44
d。
おまいのおかげで目が覚めた。

パススルークエリやめて、直接ADOからPostgreSQL開いてクエリ送ったら1づつカウントするわ。
助かったよ。

46 :デフォルトの名無しさん:2012/07/05(木) 11:25:53.31 .net
やれば出来る子

47 :デフォルトの名無しさん:2012/07/06(金) 19:18:40.79 .net
おまえみたいなやつが伸びる。






かもしんない。


48 :デフォルトの名無しさん:2012/08/12(日) 10:55:28.80 .net
Access2003  WinXP SP3 Firefox14.0.1です。

質問ですが、hyperlinkaddressプロパティというのがありますよね。
url文字列を代入すると、そのページをデフォルトのブラウザで
開いてくれるというやつ。
で、このurlのCGI何とかっていう文字列が入っていますので、
CGIで何らかのプログラムを起動しているんでしょうが、その時に、
ページが表示されないんです。
正確に言うと、デフォルトのブラウザがIE(自分の機械には6しか
入ってないんですが)だと、表示されるんですが、Firefoxだと表示できません。
でも、FFのURLボックスには灰色でうurlが表示されていて、
再読み込みボタンを押すと、表示します。
試しに、コマンドラインからurlをパラメータにして起動すると、表示します。
症状から見て、VBAの問題なのか、FFの問題なのか、判断しかねたので、
こちらでお聞きする次第です。
どなたか、詳しい方、アドバイをおねがいします。

49 :デフォルトの名無しさん:2012/08/12(日) 14:26:35.97 .net
「""」で囲んでみた?

50 :デフォルトの名無しさん:2012/08/12(日) 15:32:13.48 .net
”で囲むと、「”url”を開くことができません。指定したファイルを開くことができません」というエラーダイアログが出ます。

51 :デフォルトの名無しさん:2012/08/23(木) 22:10:14.57 .net
他の方法でFFにそのuriを送ってみる
ショートカットやコマンドライン、メールやワープロ、表計算ソフトから
同じ現象になると思うのでFFの仕様かバグ、設定のせいだとわかるのではないかと

52 :デフォルトの名無しさん:2012/08/27(月) 21:38:06.30 .net
500件ぐらいのDATAをどんどん追加していくと、3、4回で重くなってしまうんですけど、
どっから手を付けていいのやら分かりません。
ヒントください。

53 :デフォルトの名無しさん:2012/08/27(月) 21:43:01.77 .net
ソース貼れ

54 :デフォルトの名無しさん:2012/08/28(火) 07:43:56.82 .net
>>52
書き込みが遅くなるって事ですか?

55 :デフォルトの名無しさん:2012/09/12(水) 21:30:27.45 .net
VBAで既存のAccessデータベースを開いて、その中にあるクエリを実行して得られる「テーブル構造とデータ」をVBAの呼出し元にテーブルとしてインポートする方法教えてください。
[外部データ] タブの [インポート]からはうまくいくのですが、それをVBAで実行したいです。

56 :デフォルトの名無しさん:2012/09/13(木) 00:20:33.72 .net
import win32com.client
adox = win32com.client.Dispatch("ADOX.Catalog")
adox.ActiveConnection = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=test.mdb"
for t in adox.Tables:
  if t.Type != u"TABLE": continue
  print t.Name, t.DateCreated, t.DateModified
  for c in adox.Tables(t.Name).Columns:
    print c.Name, c.DefinedSize, c.Type

57 :デフォルトの名無しさん:2012/09/13(木) 03:17:38.00 .net
>>55
DoCmd.TransferDatabase でできるんじゃね

58 :デフォルトの名無しさん:2012/09/13(木) 09:47:05.31 .net
ExcelのVBAについて勉強中です。
まだ初心者なので、VBAについてお詳しい方、
ExcelのVBAでのテーブル作成方法を教えてください。
データーベース中心で、入力画面からデーターをmoveしてくるものを作りたいです。




59 :デフォルトの名無しさん:2012/09/13(木) 10:07:40.73 .net
import os
import win32com.client
MDBFILE = "test.mdb"
if os.path.exists(MDBFILE): os.remove(MDBFILE)
dsn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=%s" % MDBFILE
adox = win32com.client.Dispatch("ADOX.Catalog")
adox.Create(dsn)
adodb = win32com.client.Dispatch("ADODB.Connection")
adodb.Open(dsn)
adodb.Execute("create table hoge (id counter primary key, c1 varchar(10));")
adodb.Execute("insert into hoge (c1) values ('fuga');")
adodb.Execute("insert into hoge (c1) values ('hage');")
adodb.Close()

60 :デフォルトの名無しさん:2012/09/26(水) 09:10:07.57 .net
Access初心者です .
現在、ある地区の人口増減表を作成しています。
そのデータを格納するためにAccessを使用しています。
1回のデータを入れるたびに〈男or女〉〈転入or転出〉で元々設定された数値から(男性人口数)(女性人口数)(総人口数)
が自動的ににカウントアップする(データシートビューに)ロジックを作成したいと思っています。
現在、「データシートビュー」「デザインシートビュー」まで作成したのですが、これからどのように手を加えていけばいいでしょうか?
クエリで演算フィールドなどを作成するのでしょうか。
Access自体が全くの初心者なので、できるだけ詳しく書いていただけると助かります。
是非よろしくお願いします。


61 :デフォルトの名無しさん:2012/09/26(水) 11:25:57.96 .net
馬鹿には無理

62 :デフォルトの名無しさん:2012/09/26(水) 11:36:38.59 .net
Microsoft Office Chart10 あるいは、OWC10というグラフを描くコンポーネントで、
クリックやダブルクリックのイベントを使えないですか?
クリックしたグラフの要素を得たいのですが。

63 :デフォルトの名無しさん:2012/09/26(水) 12:53:17.87 .net
使えますよ。

64 :デフォルトの名無しさん:2012/09/26(水) 12:59:35.45 .net
>>63
どのようにするのですか?
何か参考になるページなど教えてもらえませんか?

65 :デフォルトの名無しさん:2012/09/26(水) 17:04:56.08 .net
>>64
使えますよ。

66 :デフォルトの名無しさん:2012/09/26(水) 18:11:11.92 .net
>65
使えますね。

67 :デフォルトの名無しさん:2012/09/26(水) 18:20:01.38 .net
>>66
さっさと使え。

68 :デフォルトの名無しさん:2012/10/01(月) 21:06:32.64 .net
>>57
サンキュー助かった!
スマホで規制で返信できずすスマソ。

69 :デフォルトの名無しさん:2012/11/25(日) 21:58:23.52 .net
Access 2007のフォームで、オプショングループ内でトグルボタンを作成し、各トグルボタンをクリックすると、フォームのMe.RecordSourceにトグルボタンに対応させたクエリを設定するプログラムを書いています。
今のところ、機能は追加できたのですが、トグルボタンの表示がうまく更新されず、最初に押したボタンが引っ込んだままもどりません。
トグルボタンの表示を更新する方法はあるのでしょうか?

70 :デフォルトの名無しさん:2012/11/26(月) 00:10:07.28 .net
引っ込んだら戻らなくなるのがトグルボタンなんだけど

71 :デフォルトの名無しさん:2012/11/26(月) 21:19:17.24 .net
お前らここまでやるならC#でEXCELデータいじった方が簡単だろ

72 :デフォルトの名無しさん:2012/11/26(月) 21:20:11.62 .net
>>70
すみません。言葉足らずでした。
トグルボタン1を押した後、トグルボタン2や3を押しても、トグルボタン1が押されたままの表示になってしまいます。トグルボタンに割り当てたRecordSourceの切替え機能はちゃんと動いています。


73 :デフォルトの名無しさん:2012/11/26(月) 21:38:01.20 .net
トグルボタン1を押したあと
トグルボタン2を押して
トグルボタン3を押したら
トグルボタン2はどうなってますか

74 :デフォルトの名無しさん:2012/11/26(月) 22:19:50.73 .net
>>73
トグルボタン2の表示は押されていない状態です。
トグルボタン1が押されたままの表示になっています。

75 :デフォルトの名無しさん:2012/11/26(月) 22:27:05.15 .net
1がグループに入ってないな

76 :デフォルトの名無しさん:2012/11/27(火) 06:18:00.99 .net
馬鹿には無理

77 :デフォルトの名無しさん:2013/02/09(土) 15:50:52.56 .net
ACCESS2013はどうですか?

78 :デフォルトの名無しさん:2013/03/04(月) 07:41:06.45 .net
>>77
adpがつかえん
クラサバの旗降ってきた漏れの立つ瀬がない囧rz

79 :デフォルトの名無しさん:2013/03/04(月) 13:02:19.07 .net
ACCESS2013の利点は無いのかね!

80 :デフォルトの名無しさん:2013/03/05(火) 15:27:52.54 .net
Office2013にメリットなんて無いよ。
見た目がヌルヌルしてキモいけど、価格分の性能&利便性向上はない
Office使ってなくてOpen系で駄目なら、仕方ないから買ってやるか程度

81 :デフォルトの名無しさん:2013/03/24(日) 06:36:06.38 .net
無料バージョンアップできると聞いて2010買ったのに、発売の2/6までにインスコしないといかんかった囧rz
血も涙もないよ

82 :デフォルトの名無しさん:2013/03/24(日) 07:16:09.59 .net
おめでとうw

83 :デフォルトの名無しさん:2013/03/26(火) 11:24:23.03 .net
Win8でACCESS2010です。

Form_test.Filter = "分類 Not Like ""*あああ*"" And Not Like ""*いいい*"""
Form_test.FilterOn = True

コンボボックスの更新後処理イベントで上記のコードを走らせると、
「構文エラー:演算子がありません」と返されます。
初歩過ぎる質問ですんまそん。文法何か間違ってますでしょうか。

84 :デフォルトの名無しさん:2013/03/26(火) 12:05:53.53 .net
Form_test.Filter = "分類 Not Like ""%あああ%"" And Not Like ""%いいい%"""

85 :デフォルトの名無しさん:2013/03/26(火) 13:24:28.20 .net
たぶん
 "分類 Not Like ""*あああ*"" And 分類 Not Like ""*いいい*"""

86 :デフォルトの名無しさん:2013/03/26(火) 15:56:56.54 .net
>>84->>85
返信ありがとうございます。どちらも「演算子がありません」エラーは解消されませんでした。

ちなみに、↓は問題ないので、And Notがまずいのかなと思ったんですが、書式は問題なさそうですか・・・。
Form_test.Filter = "分類 Not Like ""*あああ*"""
Form_test.FilterOn = True
他の方法も探してみます。

ヘルプ開くとBingとかいうのが出て何も表示されないお・・・。2010使いづらいお(;´Д`)

87 :デフォルトの名無しさん:2013/03/26(火) 17:04:55.32 .net
Form_test.Filter = "Not (分類 Like ""*あああ*"" Or 分類 Like ""*いいい*"")"

88 :デフォルトの名無しさん:2013/03/27(水) 08:35:25.18 .net
>>87
これでいけました!ありがとうございます!

89 :デフォルトの名無しさん:2013/03/27(水) 11:51:17.13 .net
>>88
>>84は文法間違いあるけど、>>85はいけるはずだが、ほんとにダメだったのか?
先頭の のとこは無視しないとだめだぞ

90 :デフォルトの名無しさん:2013/03/27(水) 17:54:38.17 .net
"Not 分類 Like ""*あああ*"" And Not 分類 Like ""*いいい*"""

91 :デフォルトの名無しさん:2013/04/04(木) 18:20:58.41 .net
1.OS(64bit) + Office2010(64bit)
2.OS(64bit) + AccessRuntime2010(64bit)
3.OS(64bit) + Office2010(32bit)
4.OS(64bit) + AccessRuntime2010(32bit)
5.OS(32bit) + Office2010(32bit)
6.OS(32bit) + AccessRuntime2010(32bit)
※ OS:XP〜Windows8まで

上記のどの組み合わせでも動くようなAccessの実行ファイルは作成可能ですか?

92 :デフォルトの名無しさん:2013/04/04(木) 19:39:15.05 .net
>>91
http://tsware.seesaa.net/article/174598211.html

93 :デフォルトの名無しさん:2013/04/12(金) 00:23:04.15 .net
使用不可にいている3つのテキストボックスを、
チェックボックスをonにすると使用可能にするにはどうしたらいいでしょうか?

94 :デフォルトの名無しさん:2013/04/12(金) 01:37:21.85 .net
>>93
Private Sub チェックボックス_Click()
If Me.チェックボックス.Value = True Then
Me.テキストボックス1.Enabled = True
Me.テキストボックス2.Enabled = True
Me.テキストボックス3.Enabled = True
Else
Me.テキストボックス1.Enabled = False
Me.テキストボックス2.Enabled = False
Me.テキストボックス3.Enabled = False
End If
End Sub

95 :デフォルトの名無しさん:2013/04/12(金) 11:57:39.57 .net
>>92
参考にさせてもらいました。
ありがとうございます。

引き続き質問なのですが、
Windows8(32bit) + Access2010(32bit)環境で作成したファイルを
Windows8(64bit) + Access2010(32bit)環境で実行した場合に毎回ではないのですが、
レーダーチャートの目盛りが正常に表示されません。(-3E+259と表示される)
なお、表示しているデータは毎回同じものです。

ちなみに、Windows8(64bit) + Access2010(32bit)環境で作成したファイルを
Windows8(64bit) + Access2010(32bit)環境で実行した場合も同様でした。

この現象について何かご存知の方がいらっしゃいましたらお願いします。

96 :デフォルトの名無しさん:2013/04/12(金) 17:36:38.89 .net
>>94
もう少しシンプルなコードはないですか?
わがままですみません。

97 :デフォルトの名無しさん:2013/04/12(金) 17:42:08.68 .net
>>96
Private Sub チェックボックス_Click()
Me.テキストボックス1.Enabled = Me.チェックボックス.Value
Me.テキストボックス2.Enabled = Me.チェックボックス.Value
Me.テキストボックス3.Enabled = Me.チェックボックス.Value
End Sub

98 :デフォルトの名無しさん:2013/04/12(金) 18:36:06.95 .net
>>97
すばやいご回答ありがとうございました。
いろいろな書き方があるんですね。

99 :デフォルトの名無しさん:2013/04/12(金) 22:29:10.45 .net
Excelスレでも聞いたのですが、
以下のような時間の計算結果を出す関数として

0:00〜0:44 0:30
0:45〜1:14 1:00
1:15〜1:44 1:30

=IF(A1<"0:15"*1,"0:30"*1,MROUND(A1,"0:30"))

というアドバイスをしてくれた方がいましたが、
これに相当するコードが全くわかりません。
丸投げですがどなたか教えてくださいませ。

100 :桃白白:2013/04/13(土) 02:40:34.80 .net
>>99
Function marume(ByVal s As Double) As Double
  Dim Q As Double
  Dim H As Double

  Q = TimeValue("0:15")
  H = TimeValue("0:30")
  
  If s < Q Then
    marume = H
  Else
    marume = Fix((s + Q) / H) * H
  End If
End Function

101 :デフォルトの名無しさん:2013/04/13(土) 17:33:29.73 .net
>>100
フォームの[実時間]の時間によって[時間]に結果を出す場合で、

Function 時間(ByVal 実時間 As Double) As Double
Dim Q As Double
Dim H As Double

Q = TimeValue("0:15")
H = TimeValue("0:30")

If 実時間 < Q Then
時間 = H
Else
時間 = Fix(([実時間] + Q) / H) * H
End If
End Function

としましたがうまくいかず、どこをどうしたら良いのかまるでわかりません。
ご指摘お願いいたします。

102 :桃白白:2013/04/13(土) 20:28:48.85 .net
>>101
あら。結果がずれてた? それともなんか変な動きした?
引数の形式が違うのかな。どういう入力でどう出力された?

103 :デフォルトの名無しさん:2013/04/13(土) 21:29:31.16 .net
>>102
[開始時間]に入力、[終了時間]に入力後、
時間の差を[実時間]に表示し、これを基に[時間]に結果を表示したい、という流れですが、
フォームを開くだけで以下の、

「イベント プロパティに指定した式 読み込み時でエラーが発生しました:
このメンバー識別子は既にオブジェクトモジュールの中に存在しています。」
※マクロ名、ユーザー定義関数、[イベント プロシージャ]以外の式が指定されています。
※関数、イベント、マクロの評価でエラーが発生しました。

というエラーメッセージがでますが、正直理解できていません。

104 :桃白白:2013/04/14(日) 01:59:24.64 .net
>>103
コントロールの名前と関数の名前が競合してるんでない?
コントロールと関数を別の名前にしてコントロールソースで紐付けて
やっちゃえばいいよ。こんな感じで。

Database1.zip download
http://kie.nu/Xug

105 :デフォルトの名無しさん:2013/04/14(日) 14:28:32.69 .net
>>104
うわー、ファイルのアップまでしていただき本当にありがとうございます。
テーブルに記録しておく必要があったため、

Private Sub 終了時間_AfterUpdate()
時間 = Marume(実サービス時間)
End Sub

ということで全てスッキリしました。
いただいたコード自体見てもほとんど理解しきれてませんが、
これから勉強しながら頑張ってみます。
再度、本当にありがとうございました。

106 :デフォルトの名無しさん:2013/04/19(金) 11:54:05.25 .net
フォームのプロパティにある「コード保持」って何でしょうか?
「はい/いいえ」はどのように使い分けるのでしょうか?

107 :デフォルトの名無しさん:2013/04/19(金) 12:30:11.35 .net
存在しないオブジェクトに関連したコードを不要になったときに自動で削除する機能がある
たとえば"ボタンA"をクリックしたときのコードを書いてある状態で
あとで"ボタンA"を"ボタンB"に名称変更したりしたときに
コード保持が「いいえ」だと"ボタンA"をクリックしたときのコードは捨てられる

108 :デフォルトの名無しさん:2013/04/19(金) 16:04:50.27 .net
どもです

つまりコード保持は、名称変更をした際に以前のコードが消えても良い
または名称変更は絶対にしないような状況であれば、「いいえ」を選択しておいても良い
と言うことで間違いないですか?

どこかで「いいえ」にした方が速度が速くなる的なことが書いてあった覚えがあるので・・・

109 :デフォルトの名無しさん:2013/04/19(金) 16:43:59.98 .net
>>107
名前の自動修正オプションとこんがらがってないか?

>>108
コード消えるのはフォームかレポート単位だぞ
名前変更とか関係なくて、そのフォームのコード全部消えるぞ

ヘルプにはコードが無いからいいえの方が処理が早いとは書いてあるな
その分制約もあるが
ヘルプみて意味がわからないなら、設定変えるのはやめとけ

110 :デフォルトの名無しさん:2013/04/22(月) 10:00:33.47 .net
>>109
遅くなりましたが、ありがとです

試しにフォームを作成時に、「いいえ」を選択しておいた状態で
イベントプロシージャを設定してみました。
その時点で自動的に「はい」に切り替わるんですね。

そしてコードを使うフォーム、レポートが1000個を超えるものは作れないと言う事なんですね。
勉強になりました。

111 :デフォルトの名無しさん:2013/04/25(木) 11:56:04.36 .net
タブコントロールでページ5枚作る。
チェックボックスによって表示ページ数を切り替えたい。
・チェックなし : ページ1〜ページ5
・チェックあり : ページ2〜ページ4

そのため、チュックボックスのイベントプロシージャで、一旦全部のページを非表示にして
そのあと、必要なページを表示するようにしてみました。

For i=0 To 5
Me.Controls("ページ" & i).Visible = False
Next i

For i=Starrt To Start+Cnt
Me.Controls("ページ" & i).Visible = False
Next i

それで、ページ5を選択している状態でチェックありにすると
消したはずのタブの周りの枠が残ってしまいます。

これを綺麗に消す方法ってありませんか?

環境はAccess2010です。

112 :111:2013/04/25(木) 12:00:42.84 .net
忘れてましたがタブの背景色を変更したいので
タブコントロールのプロパティで「テーマの使用」を「はい」に設定してあります。

113 :デフォルトの名無しさん:2013/04/25(木) 14:29:36.88 .net
消す前に違うページを選択すれば良いだけじゃないのか?

114 :デフォルトの名無しさん:2013/05/21(火) 13:36:25.32 .net
チェックボックスの true が -1 から 1 に変わったようです
2007からでしょうか?

変更がめんどくさい

115 :デフォルトの名無しさん:2013/05/22(水) 11:48:10.00 .net
>>114
2003と2007で試したけど非連結で画面でチェックした場合はどちらも-1になる
ただし、コードで1をセットしたら1のままだった

まず1をセットするコード書くのが悪い
そして、1でも-1でもBooleanとして評価したらTrueなんだから
そんな事に影響されるコード書くのが悪い

116 :デフォルトの名無しさん:2013/05/22(水) 14:18:44.22 .net
>チェックボックスの true が -1 から 1 に変わったようです
>2007からでしょうか?

キリっ

117 :デフォルトの名無しさん:2013/05/22(水) 14:27:02.75 .net
知らんがな
ってレスしようと思ったけど
かわいそうなので放っといた

118 :デフォルトの名無しさん:2013/06/04(火) 02:35:18.23 .net
月曜会社を休んで家で土曜から月曜までVBAをひたすら書き続けた結果
頭が超重くなって3日目は何やってるかよくわからないまま終わってしまった
VBAのコーディングをぶっ通しでやるのは2日が限界か?

119 :デフォルトの名無しさん:2013/06/05(水) 22:11:38.14 .net
>>118
限界は人それぞれだろうが、無理はすんなよ

120 :デフォルトの名無しさん:2013/06/21(金) 00:57:48.54 .net
access 2003 にて
SendObjectメソッドを利用して、メールを送信したいと思っています。

実際にメールを送れるようにはなっているのですが、
送信メール本文に「mdbファイルと同一ディレクトリにある単体の.msgファイルの本文」(.msgファイルの場所はフルパス指定でも構いません)
を表示させる事は可能でしょうか?

イメージ的には、テーブルから送信先アドレスを収集し、.msgファイルの本文の内容をテンプレートとして一括送信する
と言った感じです。

121 :デフォルトの名無しさん:2013/06/21(金) 01:01:26.56 .net
書き忘れました。
メール送信ソフトはoutlookです。

122 :デフォルトの名無しさん:2013/06/21(金) 07:11:37.65 .net
.msgファイルの形式ってたぶん公開されてないんだよなぁ
どうやってメールを.msgで保存してるかしらんが、そっちを変更した方が楽な気がする
outlookでもVBAは使えるぞ

123 :デフォルトの名無しさん:2013/06/30(日) 18:38:52.19 .net
>>120
OutLookのSession.OpenSharedItemで.msgファイルの読み込みできるが
他のアプリからOutLookいじるのはお勧めしない
OutLook側でmdbに書きだすとか、プレーンテキストで保存するとかした方が良いんじゃね

124 :デフォルトの名無しさん:2013/08/31(土) NY:AN:NY.AN .net
質問です
ODBCの接続する際に
IDとパスワードを入力するボックス(VBAで設定したものではない)がありますが、
初めから半角英数字になるように設定はできますか?

125 :デフォルトの名無しさん:2013/08/31(土) NY:AN:NY.AN .net
VBAで設定したものではないものを、VBAでどうこうするのは無理があります

126 :デフォルトの名無しさん:2013/08/31(土) NY:AN:NY.AN .net
>>125
ですよね。
IDやパスワードを入力するときに各々気を付けてもらうしかないですね。

127 :デフォルトの名無しさん:2013/08/31(土) NY:AN:NY.AN .net
>>126
プロパティにないの?

128 :デフォルトの名無しさん:2013/08/31(土) NY:AN:NY.AN .net
ODBCのミドル層で出てるダイアログだから、アクセス側からいじれるプロパティなんてないだろ
自分でIDとパスワード入力してもらうフォーム作ってそこに入力してもらえ

129 :デフォルトの名無しさん:2013/08/31(土) NY:AN:NY.AN .net
DBの持ち物か。すまん。
ダイアログの出る直前にACCESSで入力を固定して終わったら解除ってできないのかね。
(調べてない、ただの理想を述べてみた。)

130 :デフォルトの名無しさん:2013/09/01(日) 00:30:06.54 .net
>>129
>>124が言ってるのは多分、ODBCで接続するときにユーザとパスワードを指定しなかったときに出るやつ
自分でちゃんと接続できるユーザとパスワード指定したら出ない
間違ったユーザやパスワード設定したらしらん

131 :デフォルトの名無しさん:2013/09/01(日) 02:59:29.29 .net
Access初心者です。
VBAでExcelからデータをコマンドボタンで自動インポートさせる物を
作っています。
インポート漏れがないかのチェック処理もさせたいのですが、
どのようにすればいいかわかりません、ご教授お願いします。

132 :デフォルトの名無しさん:2013/09/01(日) 03:24:10.08 .net
>>131
レコード数で比較すれば?

133 :デフォルトの名無しさん:2013/09/01(日) 03:48:29.03 .net
>>132
ありがとうございます。
仮に件数が合わなくてインポート漏れしたレコードを
特定するための処理をいれることはできますか?

134 :デフォルトの名無しさん:2013/09/01(日) 03:59:24.56 .net
ユニークキーで差分とれよ
少しは考えろよ

135 :デフォルトの名無しさん:2013/09/01(日) 04:00:02.93 .net
>>133
ユニークキーで差分とれよ
少しは考えろ

136 :デフォルトの名無しさん:2013/09/01(日) 08:49:32.79 .net
インポート漏れなんてあるの?

137 :デフォルトの名無しさん:2013/09/01(日) 09:02:48.06 .net
結構ある
あと勝手にデータ変換されてたりもする

138 :デフォルトの名無しさん:2013/09/01(日) 09:25:38.41 .net
そうか
ならインポートしてからチェックするより自前のコードでインポートした方がいいんじゃない?

139 : 【だん吉】 :2013/09/01(日) 09:31:40.27 .net
自分はそうしてる

140 :デフォルトの名無しさん:2013/09/01(日) 10:05:17.59 .net
ウィザードにまかせてるとひどい目にあう

141 :デフォルトの名無しさん:2013/09/01(日) 10:35:21.42 .net
Access初心者なので、そのVBAのコードの書き方がわかりません
教えていただけませんか

142 :デフォルトの名無しさん:2013/09/01(日) 10:36:54.67 .net
いいですよ

143 :132:2013/09/01(日) 19:42:00.26 .net
>>131
www.nurs.or.jp/~ppoy/access/access/acX014.html

144 :デフォルトの名無しさん:2013/09/01(日) 20:23:21.63 .net
インポート漏れするデータ欲しい
試してみたい

145 :デフォルトの名無しさん:2013/09/01(日) 23:14:50.69 .net
数字型のとこに文字入ってるデータとか用意したらいいんじゃね

146 :デフォルトの名無しさん:2013/09/01(日) 23:38:03.38 .net
>>145
うーん、そういうデータをインポートすると普通にエラーとして扱われて
「テーブル名_$インポート エラー」 ってテーブルが生成されるから
インポート漏れのレコードがわからなくて困る、なんて状況にはならないんだよね

147 :デフォルトの名無しさん:2013/09/02(月) 10:35:57.67 .net
インポート漏れのレコードがわからなくて困る、なんて状況になると言ってる人はいないが

148 :デフォルトの名無しさん:2013/09/02(月) 10:57:43.03 .net
おもろいな

149 :デフォルトの名無しさん:2013/09/05(木) 23:50:52.09 .net
DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel8, _
strac, strxls, True, strrange
上記でインポート エラーになるので引数のacImportのところに、
作成したインポート定義にしたいのですができるのでしょうか

150 :デフォルトの名無しさん:2013/09/07(土) 03:42:11.28 .net
よし

151 :デフォルトの名無しさん:2013/09/07(土) 16:59:26.27 .net
そもそもワークシート変換にインポート定義とかないだろ

152 :デフォルトの名無しさん:2013/09/09(月) 01:46:05.73 .net
Accessの初心者です。
レポート印刷でページヘッダーのコードが変わったタイミングで改ページしたい
かつ詳細の明細行は4レコードだけで改ページさせる、両方の条件を満たせるには、
どうやって作成したらよいかご教授お願いします。

153 :デフォルトの名無しさん:2013/09/09(月) 02:08:51.60 .net
ページヘッダーじゃなくて、その項目でグループ化してヘッダー作る
そのヘッダーかフッターで改ページを設定する

詳細の高さを4行分になるようにヘッダ、フッタや余白を調整する

つか、VBAまったく関係ない話

154 :デフォルトの名無しさん:2013/09/09(月) 07:18:08.57 .net
>>153
ここはVBAのスレですよね?VBAと関係ある話をしてください。
VBAとまったく関係ない話をしたのはあなたです。VBAでお願いします。

155 :デフォルトの名無しさん:2013/09/09(月) 13:03:59.99 .net
VBAを一言で表すと

156 :デフォルトの名無しさん:2013/09/09(月) 13:20:44.56 .net
>>154
マジレスしといてやるが、VBAでやるよりよっぽど>>153の方法の方が良いぞ
だがあえてVBAでやりたいなら
明細セクションの最初と最後に改ページコントロール(改ページ1,2)を配置して
Dim 行数 As Integer
Dim 前コード
Private Sub レポートヘッダー_Format(Cancel As Integer, FormatCount As Integer)
&nbsp; &nbsp; Me.改ページ1.Visible = False
&nbsp; &nbsp; Me.改ページ2.Visible = False
&nbsp; &nbsp; 前コード = Me.フィールド5
End Sub
Private Sub 詳細_Format(Cancel As Integer, FormatCount As Integer)
&nbsp; &nbsp; If Me.フィールド5 <> 前コード Then
&nbsp; &nbsp; &nbsp; &nbsp; Me.改ページ1.Visible = True
&nbsp; &nbsp; &nbsp; &nbsp; 行数 = 0
&nbsp; &nbsp; Else
&nbsp; &nbsp; &nbsp; &nbsp; Me.改ページ1.Visible = False
&nbsp; &nbsp; End If
&nbsp; &nbsp; 前コード = Me.フィールド5
&nbsp; &nbsp; 行数 = 行数 + 1
&nbsp; &nbsp; If 行数 > 4 Then
&nbsp; &nbsp; &nbsp; &nbsp; Me.改ページ2.Visible = True
&nbsp; &nbsp; &nbsp; &nbsp; 行数 = 0
&nbsp; &nbsp; Else
&nbsp; &nbsp; &nbsp; &nbsp; Me.改ページ2.Visible = False
&nbsp; &nbsp; End If
End Sub
こんな感じ。この例ではフィールド5が変わったら改ページな

157 :デフォルトの名無しさん:2013/09/09(月) 13:22:34.74 .net
う。&nbsp;は空白に置換してくれ
つか普通に貼り付けできなくなったのかよ

158 :デフォルトの名無しさん:2013/09/10(火) 00:16:36.47 .net
>>156
もう少し教えてください。。。
明細が5明細あった場合、

コードA
00001
00002
00003
00004
改ページ
コードA
00005
改ページ
コードB
00001
00002
00003
改ページ
コードC
00001

こんな感じで出したいのですが

159 :デフォルトの名無しさん:2013/09/10(火) 02:26:08.63 .net
>>158
>>156が理解できないなら、VBAでやるのやめとけ

160 :sage:2013/09/17(火) 19:50:09.24 .net
Accessのクエリで、「クエリの並び替え条件を動的に変更する」方法を
教えて頂けないでしょうか。

現状は、下記のクエリを作成しましたが、並び替え条件として判定されません。

SELECT * FROM テーブル1
ORDER BY FORMS!画面1!テキスト1.Value

よろしくお願いします。

161 :デフォルトの名無しさん:2013/09/17(火) 20:22:56.49 .net
>>160
SELECT * FROM テーブル1
ORDER BY FORMS!画面1!テキスト1.Value

これってどこに書いてるの?

162 :デフォルトの名無しさん:2013/09/17(火) 21:44:28.61 .net
>>160
どうしてもやりたいならQueryDefとか使えばできるかもしれんが
動的にSQLつくってDoCmd.RunSqlでやる方がいいんじゃね

163 :160:2013/09/17(火) 22:09:44.82 .net
>>161
Accessの「クエリ」で定義していました。

>>162
ご指摘を受けた点を参考にクエリを作成した所、うまく行きました。
ありがとうございます。

164 :デフォルトの名無しさん:2013/10/20(日) 21:44:25.62 .net
株価のデータベースを作りVBAで銘柄の抽出をしています
VBAを呼ぶ度にSQLで株価データを読み込んでるので日に何度もやると結構無駄です

そこでフォームをロードした時に纏めて銘柄毎のクラスオブジェクトを作り
フォームをアンロードするまで保持したいのですが可能でしょうか?

変数の保持はStaticで良いようですが、配列化してるオブジェクトの保持はどのようにするのでしょうか?

165 :デフォルトの名無しさん:2013/10/20(日) 22:06:18.65 .net
view

166 :デフォルトの名無しさん:2013/10/20(日) 22:10:51.15 .net
すごいVBA発見w
http://esuafai.digi2.jp/

167 :164:2013/10/20(日) 22:56:11.74 .net
フォームと連動させるのではなく、最初に実行させる時にStaticで保持し
2度目からオブジェクトが空ではないならデータを取りに行かずに
値渡しするようにして解決しました

168 :デフォルトの名無しさん:2013/10/21(月) 00:11:20.78 .net
なんか色々つっこみどろこ満載だな
まあ、動いてるならいいか

169 :デフォルトの名無しさん:2013/11/05(火) 18:56:30.39 .net
VBAでリモートのデータベースにトランザクション処理を開始して、コミット/ロールバックするのはわかりました。
これをマクロのアクションだけではできないですよね。
Vbaを嫌がる仲間が同一プロジェクト内にいるので。

170 :デフォルトの名無しさん:2013/11/16(土) 13:17:48.50 .net
初心者ですみません。コンパイルってなんですか?

171 :デフォルトの名無しさん:2013/11/16(土) 13:19:54.03 .net
疲労困憊る

172 :デフォルトの名無しさん:2013/11/16(土) 13:40:52.90 .net
コンパイルダー・オン

173 :デフォルトの名無しさん:2013/11/16(土) 15:59:42.46 .net
昔広島にあったSTGや落ちゲーキャラゲー開発してた会社

174 :デフォルトの名無しさん:2013/11/16(土) 17:51:44.57 .net
あったなぁ

175 :デフォルトの名無しさん:2013/11/16(土) 18:27:38.04 .net
脳みそコネコネの会社?なくなったのか?

176 :デフォルトの名無しさん:2013/11/16(土) 18:29:57.41 .net
マジレスしとこう
>>170
ソースプログラムを実行可能形式に変換する事

簡単に言えば、お前が書いたプログラムを実行できるように準備する作業
ACCESSなら勝手にやってくれるから、意識する必要はない

177 :デフォルトの名無しさん:2013/11/16(土) 19:25:11.96 .net
>>175
1998年に無くなって、落ちゲー関係はセガが買い取った

178 :デフォルトの名無しさん:2013/11/16(土) 21:35:05.65 .net
>>176
なるほど。では、あえてコンパイルという作業をしなくてもOK
ってことですね。
あるがとうございます!

179 :デフォルトの名無しさん:2013/11/25(月) 21:45:32.92 .net
Accessの場合、ソースを中間コードに変換する作業をコンパイルと呼んでる。
その過程でソースにエラーがあるかどうかをチェックするから
実行時エラーとかの対策にはコンパイル通しておいた方が良いと思う。

180 :デフォルトの名無しさん:2013/11/26(火) 02:50:39.57 .net
実行時エラーってのは普通、コンパイルは通った後に発生するエラーの事を言うんだが
まあ、実行時にコンパイルエラー出るのもなんだし、事前にコンパイルしとけってのは同意するが

181 :デフォルトの名無しさん:2014/01/31(金) 12:48:48.93 .net
Access独自の便利機能なのか分かりませんが
テキスト型のフィールドで日付が含まれる文を「日付順にソート」出来るのですが
これをVBAでやるにはどうしたら良いのでしょうか?

テキストに規則性が無いためにOrderByなどでは対応出来ません
テキストフィールドに入ってる文字列の例:

"第3四半期決算を1月10日に発表済み"
"第3四半期決算を2月10日"
"本決算を2月13日"
"---"

このようになってても、テーブルのフィールドを選択してソートが出来るとは初めて知ったのですが
VBAからやる方法が分かりません

182 :デフォルトの名無しさん:2014/01/31(金) 13:00:11.86 .net
>>181
>テキストに規則性が無いためにOrderByなどでは対応出来ません

最初に書いたSQLが悪かったみたいで
これで出来ました。サーセン

183 :デフォルトの名無しさん:2014/01/31(金) 15:57:33.35 .net
辞書順と偶然一致しただけなんじゃないの

184 :デフォルトの名無しさん:2014/01/31(金) 18:24:40.76 .net
そもそも
>テキスト型のフィールドで日付が含まれる文を「日付順にソート」出来るの
これが怪しいんだが
どこでこんな事教えられたんだ

185 :デフォルトの名無しさん:2014/01/31(金) 19:17:48.82 .net
そうだな、俺も出来るとは思ってなかった
しかし、実際その通りに動くのだから仕方がないw

だから最初に「Access独自なのか」と思ってるのだが
これが出来るのは2013だからかもしれない

186 :デフォルトの名無しさん:2014/01/31(金) 19:30:53.46 .net
テキスト型だから、文字数順に並び替えてるのかと思って試してみた

"本決算を2月13日"、これを"本決算を1月13日"に書き換えて試すと
日付順に並び替わる>>181の例で言うと真ん中に来る

更に"第3四半期決算を2月10日"、これを"第2四半期決算を2月10日"
とやっても日付順に並び替わるので間違いない、>>181の例で言うと一番最初に来る

しかし、2月3日と02月03日表記では並び方が変わる
具体的にはMD表記郡の中でソートされ、MMDD表記郡の中でソートされる

187 :デフォルトの名無しさん:2014/01/31(金) 19:54:34.74 .net
分かった。ググったら出てきた
2007から出来るらしいけど、勝手に日付を解釈してるのではなく
正確にはテキスト部分を無視して数値順に並び替えてる、らしい

188 :デフォルトの名無しさん:2014/01/31(金) 21:40:18.27 .net
ということはデータを統一しないといけませんね

189 :デフォルトの名無しさん:2014/01/31(金) 22:33:10.45 .net
ソートの問題じゃなくて暗黙の型変換の問題な気はするけど
>テキスト部分を無視して数値順に並び替えてる
普通にソートすればテキストでソートするんだが
どうやったらそんなソートするんだ?

190 :デフォルトの名無しさん:2014/01/31(金) 22:39:33.21 .net
どんな型変換すればそうなるのか、逆に聞いてみたい

191 :デフォルトの名無しさん:2014/02/01(土) 13:42:22.69 .net
あいまいな検索をしたい場合はLike *検索文字列* だけど
これだと、先頭文字列に外字が含まれてる場合は検索されない
のだけれど、回避方法はある?

192 :デフォルトの名無しさん:2014/02/02(日) 23:15:37.86 .net
>>191
ちゃんと検索できるっぽいけど
先頭文字に外字ってのは、検索対象のテーブルデータなのか、Likeに指定する文字列なのか?

193 :デフォルトの名無しさん:2014/02/03(月) 09:59:08.52 .net
>>192
先頭に含まれる外字は検索対象のテーブルデータです
文字列の中間に外字が含まれる場合は検索できるのに、
先頭だと検索されない減少が発生する…

194 :デフォルトの名無しさん:2014/02/03(月) 16:26:19.10 .net
>>193
かるく試したが再現しないな
OSかACCESSのバージョンによる問題か
単にお前の勘違いか
ACCESSでも限定された状況でのバグか
MDB(ACCDB)がぶっ壊れてるか

まあ、単に検索できないレコードに不正なデータが混じってるだけだと思うが

195 :191:2014/02/03(月) 18:14:37.26 .net
一応解決したっぽい

原因として、dbmagicにodbc経由でリンクテーブルに
したのがダメらしい
リンクテーブルをやめて、テーブルデータごとインポートしたら
通常通りに検索できた

みんなありがと

196 :デフォルトの名無しさん:2014/02/03(月) 18:49:01.92 .net
喰らえカスども、奥義「後出し特殊条件!」

197 :デフォルトの名無しさん:2014/02/03(月) 18:58:14.00 .net
生データインポ時に変換されただけとかは?
つまりODBC接続でもデータを相応しい変換しておけば解決できるのかも

198 :デフォルトの名無しさん:2014/02/03(月) 22:22:24.80 .net
そもそも外字サポートされてるのかどうかしらんが
たんにdbmagicで外字がバグってただけだろ

199 :デフォルトの名無しさん:2014/02/08(土) 21:20:31.59 .net
SQLのReplace Intoに相当する物って有るんですか?

200 :デフォルトの名無しさん:2014/02/10(月) 01:08:00.70 .net
フォームに伝票基本情報
サブフォームに詳細というか明細欄(だいたい30レコードくらい)配置して、
1売上1レコードになるようにしています。
サブフォームに、
内容 金額 委託 委託金
とフィールドがあり、委託したときに入力するですが、
(この委託の部分も、
1売上(外注)1レコードにできませんか?

201 :デフォルトの名無しさん:2014/02/10(月) 01:42:27.90 .net
誰か翻訳

202 :デフォルトの名無しさん:2014/02/10(月) 11:01:12.98 .net
>>199
そもそも標準的なSQLにそんな命令聞いた事ない
ACCESSでも聞いた事ない

203 :デフォルトの名無しさん:2014/02/10(月) 11:05:35.28 .net
>>200
なにがしたいか良くわからんが、サブデータシートとかサブフォームのネストとか
たぶんそれでできるんじゃね

204 :デフォルトの名無しさん:2014/02/12(水) 15:25:40.29 .net
>>199
MySQLの独自実装か?
SQL ServerにもPostgreSQLにもないが・・・。

どんな動きかググってまで答える気にならない。

205 :デフォルトの名無しさん:2014/02/16(日) 11:19:02.87 .net
>>202
>>204
ググレカス

206 :デフォルトの名無しさん:2014/02/27(木) 09:57:10.80 .net
練習がてらVBAでユーザー定義関数をつくろうかと思ったんですが思った通りのものが作れず困っています。
というか簡略化できないもんかと思っているわけですが。

OS XP
Access 2003

Function AAA(Parm01,Parm02,Parm03...) AS String ’parmは最終的にParm24までできますがここでは簡略化

If Parm01 = "S" or Parm01 = "A" then
     AAA = "1"
Exit Function
Else
     AAA = "0"
end if

End function

とすごく単純なものなのですが、Parm01〜Parm03(実際にはParmは24個)にはそれぞれS・A・B・Cのいずれかが入っているので
それを数値に変換する仕組みを作りたいのです。
SかAだったら1を。それ以外(B・C)だったら0を返す。
上には記載していませんが最終的にはParmの中身を全て合計した値を返すようにいじる予定です。

で、問題なんですが、IF文の中でParmの中身を判定しているわけですが、これをParmの数だけ作るのはなんか美しくない。
Parm01〜24をまとめて判定するにはどのようにするのが美しいでしょう。

ご教授頂ければ嬉しいです。

207 :デフォルトの名無しさん:2014/02/27(木) 11:20:17.13 .net
>>206
まず24個も引数取るのを美しいか疑問に思えよ
その24個をまとめたコレクションなり配列なり用意するとか
その24個にあまり関連がないないならParamArrayつかえ
(その前提でまとめて同じ引数にするのおかしいけどな)

208 :デフォルトの名無しさん:2014/02/27(木) 11:34:23.61 .net
>>207
ParamArrayというのがあるんですね。ありがとうございます。調べてみます!

美しさに関しては超ごもっともなんですが、如何せん元のデータをいじる権限がなくてですね。
元データの開発者をぐーで殴りたいレベル。

識別コード(一意)|24ヶ月前|23ヶ月前|22ヶ月前|21ヶ月前|・・・|当月|

ってな感じなんですよ。
んでこの○ヶ月前ってのがParmになるんですけどコレクションにせよ配列にせよ、結局は同じことなので
AAA(24ヶ月前,...当月)ってやっちまったほうが早いかなと。

大変助かりました。ありがとうございます。

209 :デフォルトの名無しさん:2014/02/27(木) 14:06:57.28 .net
VBAにそんなもんあんのか?構造体使うのが普通だろ
ただしVBAの構造体は遅いけどな

210 :デフォルトの名無しさん:2014/02/27(木) 14:09:36.05 .net
有りますね、サーセンw

211 :デフォルトの名無しさん:2014/02/27(木) 15:11:10.30 .net
ACCESSなら元データはテーブルじゃないのか
だったらレコードセットなり渡せば済む話だとおもうが

212 :デフォルトの名無しさん:2014/03/12(水) 22:15:26.86 ID:W4Gp9YVD.net
設計の悪いDBだとたまに見る形だな
一々縦横変換とかしなきゃならんやつ

213 :デフォルトの名無しさん:2014/06/24(火) 13:28:55.21 ID:DxDJQaB9C
Accessをメインに仕事されてる方たちに質問。(データ入力は別)

年収どれくらいですか?

214 :デフォルトの名無しさん:2014/06/30(月) 22:54:27.08 ID:VWrrXenH.net
続きです。
何かすっごく基本的な凡ミスな気がしてるのですが、何かここらあたりありますか?
エスパーな質問で申し訳ないです。。

215 :デフォルトの名無しさん:2014/07/01(火) 00:30:57.04 ID:0DCE/lPo.net
メモ型はSQL使うと切れたり頭の255しか判定してくれなかったりするからなあ
エクスポートインポートとかはバグで切れちゃうし
普通に文字列INSERTで入るか試してみて

216 :デフォルトの名無しさん:2014/07/21(月) 20:33:39.99 ID:ufWzAtLi.net
171 名前:デフォルトの名無しさん[] 投稿日:2014/07/17(木) 02:49:51.87 ID:TFQGtdi0
http://www.ynsk.co.jp/nsk/knowhow/sendmail/sendmail5.htm

こちらのサイトに公開されてるアクセスのコードなんですが
Windowsの標準DLLを利用して、メールを受信、送信するプログラムを
実行したいのですが、うまく動かせません。


他のスレッドで質問しましたが、こちらに誘導されてきました。
無償で公開されてるソースコードが動かないのですが、わかる有志の方、いらっしゃいましたら
使い方おしえてください。

元スレッド:Excel VBA 質問スレ Part34

217 :デフォルトの名無しさん:2014/07/21(月) 20:44:10.09 ID:KfqA2p34.net
どう動かないのかぐらい書けや

218 :デフォルトの名無しさん:2014/07/21(月) 21:01:38.49 ID:ufWzAtLi.net
●MDBファイルの内容
 ・ メールユーザ(テーブル)……利用するメールアカウントの情報を保存します。
 ※ 以下のように設定して下さい。
     メールアドレス
     POP3サーバ
     ユーザ
     パスワード
     SMTPサーバ
     リターン ← 受信時にサーバなどから通知されるメッセージが設定されます。
     受信要求 ← 0(受信しない)または-1(受信する)を設定して下さい。
     仮受信 ← -1(メールをサーバから消さない)または0(消す)を設定して下さい。

上記の説明通り、テーブルに必要事項を記入しましたが反応しません。
コンパイルはしました。UACを切ってファイルのアクセス権限をeveryoneに変更しました。。
動作確認済み環境が、Win2000とXPProのようで、office97、2000では動作の確認が取れてるみたいです。

自分の環境:Win7pro office2010pro

219 :デフォルトの名無しさん:2014/07/21(月) 21:04:27.24 ID:KfqA2p34.net
>>218
反応しないってどういうこと?
テーブルにセットしただけでは何も起こらなくて当然だぞ

220 :デフォルトの名無しさん:2014/07/21(月) 21:44:14.81 ID:ufWzAtLi.net
メール受信(更新クエリというのが有るようですが、そのクエリが見当たりません。初歩的なところで止まっているような気はするのですが、外部からのデータ受ける部分のdllがwin7で動作できない理由と読んでるのですが。ご教授願います。

221 :デフォルトの名無しさん:2014/07/21(月) 22:38:52.22 ID:DpfIQ25M.net
 ・ B_POP3(モジュール)……メールの受信とデコードを行います。
 ※ このモジュールを実行するためには、作業用のフォルダが必要です。
    B_POP3(モジュール)の中のコーディング
    「Private Const BWorkDir As String = "c:\maildata"」と
    「Private Const BWorkTempDir As String = "c:\maildata\temp"」で
    作業用のフォルダを指定しています。
    ダウンロードしたままの設定で操作する場合、
    Cドライブ直下にmaildataというフォルダとmaildataフォルダのなかに
    tempというフォルダを作成して下さい。
    別のフォルダを利用する場合、フォルダの指定を変更して下さい。
    「Private Const c_WorkDir非消去 As Integer = -1」というコーディングがあります。
    -1のままだと、1メールごとに上記作業用のフォルダの中身を削除しません。
    1ユーザのメールが複数あって、それを受信した場合、作業用のフォルダには全件分のファイルを残しています。
    デバック時に1ユーザごとに受信すれば、中間結果を追えるので、有効なことがあります。
    ファイルには、「mail1.txt」,「mail2.txt」.....などの番号を付けています。
    ファイルと受信したメールを照合させるため、テーブルに保存したメールの「件名」にも番号を付けています。
    0にすると、作業用のフォルダには最後の1件分のファイルしか残りません。
    安定した運用段階に入れば、0にした方がディスク負荷は小さくなります

222 :デフォルトの名無しさん:2014/07/22(火) 00:54:13.17 ID:aPcZAjL/.net
フォルダのアクセス権限の確認→念のため、everyoneに変更
ディスク負荷による動作停止の可能性→-1から0に変更したが変化なし
そもそも、動作環境は古いマシンで行われていたので
マシンスペックのリソース不足は考え難いと考えました。

もう少し、調べてみます。winsock.dllあたりが怪しいです。
パケットキャップとる以前に、ハードディスクの動作に変化が見られない。

223 :デフォルトの名無しさん:2014/07/22(火) 02:35:29.84 ID:aPcZAjL/.net
お騒がせしました。
原因は、accessの使い方がわからないまま
クエリが非表示であることに気付かず、試そうとしたためです。
同じ環境をVM作成し、対象のクエリのSQLクエリが見えたのでそれをぱくりました。

以上

224 :デフォルトの名無しさん:2014/07/27(日) 15:01:49.68 ID:1777RigF.net
基本的なことと思いますが、教えてください。

Public Function FuncSyohizei(ByVal kingaku As Double) As Double
FuncSyohizei = kingaku * 1.05
End Function

これを、イミディエイトウインドウから実行する場合
?FuncSyohizei(100.0)
・・・型が一致しません。ちなみに、?FuncSyohizei(100)でも、同じ。
?FuncSyohizei 100
→ 100 ?FuncSyohizeiは、文字列とみなされ、無視された?。

ただしく、100と引数を渡したら、105と返ってくるようにするには
イミディエイトウインドウに、どう入力すればいいんでしょうか。

225 :デフォルトの名無しさん:2014/07/27(日) 16:34:57.58 ID:fFsyojt4.net
? @FuncSyohizei(100.0)

226 :224:2014/07/27(日) 18:14:36.50 ID:02SmaVb3.net
いろいろやってみて、解決しました。

フォームモジュールに、これを作ったのがいけなかったようです。
標準モジュールにコピペして、?FuncSyohizei(100)したら
105が出ました。

227 :デフォルトの名無しさん:2014/07/28(月) 00:30:37.26 ID:ZjuZ26GB.net
Date, Now って
Functionじゃなく
Propertyなのな

228 :デフォルトの名無しさん:2014/07/28(月) 02:29:49.00 ID:4Zda3n2L.net
>>227
そんな事ないと思うが
もしかしたらそう言う名前のプロパティを持つものもあるのかもしれんが
ちなみに、何のプロパティだ?

229 :デフォルトの名無しさん:2014/07/28(月) 03:01:52.49 ID:ZjuZ26GB.net
>>228
オブジェクトブラウザ見てごらん

230 :デフォルトの名無しさん:2014/07/28(月) 13:08:38.66 ID:hu7LkKIJ.net
VBAの標準関数って、VBA組み込みオブジェクトのメンバして実装されてるのか
しかし、メソッドとプロパティの使い分けの基準は謎だな

231 :デフォルトの名無しさん:2014/08/20(水) 13:35:49.89 ID:qA3YOzZv.net
Access2003でwebスクレイピングしてます。
Dim objHTML As MSHTML.HTMLDocument
Dim objDoc As MSHTML.HTMLDocument
If (objHTML Is Nothing) Then Set objHTML = New MSHTML.HTMLDocument

Set objDoc = objHTML.createDocumentFromUrl(strURL, vbNullString)

ってな感じでタグでデータを拾いたいのと、速度を重視してMSHTMLを使ってやってます。

が、createDocumentFromUrlのところでクッキーのセキュリティ警告が出てしまいます。
http://imgur.com/41wmxYi
回避する方法はないでしょうか?
インターネットオプションをいろいろといじってみたけど、お手上げ状態です。

URLを変更して呼び出すたびに毎回出てくるので、処理を開始して放置しておくことができません。

232 :デフォルトの名無しさん:2014/08/20(水) 18:22:09.72 ID:aSpRdTpy.net
>>231
Windows再インストール後初めてプログラム実行したとき表示されたけど
許可して以降は出てないな。

233 :デフォルトの名無しさん:2014/08/21(木) 00:46:10.94 ID:Ue/CPgyd.net
>>232
本当ですか…

とりあえずプライバシーの設定を最低にして全てのクッキーを受け入れるにしたら、でなくなりました。

が、少し怖い…

234 :デフォルトの名無しさん:2014/08/21(木) 02:13:22.51 ID:nSwAzUL+.net
>>233
IEの設定を全リセットしても出ない。
Win7x64+IE10

235 :デフォルトの名無しさん:2014/08/21(木) 02:28:53.95 ID:Ue/CPgyd.net
>>233
win7(32bit),ie11です。

今度クッキーとか履歴とか全部クリアして試します。
メッセージでくぐってもie5がってMSのサイトしかでないんですよね。

ちなみにat Homeの不動産情報サイトです。

236 :デフォルトの名無しさん:2014/08/21(木) 02:29:20.42 ID:Ue/CPgyd.net
>>234
でした。
すんません。

237 :デフォルトの名無しさん:2014/08/21(木) 02:32:53.11 ID:SlcBJ8S5.net
>>231
ちょっと状況違うみたいだけど
http://www.f3.dion.ne.jp/~element/msaccess/AcTipsMSHTML.html
にある
objHTML.DesignMode = "on"
試してみた?

238 :デフォルトの名無しさん:2014/08/21(木) 16:24:32.22 ID:Ue/CPgyd.net
>>237
231です。
これも見ていたのですが、オンにするとスクリプトが実行されないとあるように、
ほしい情報がとれなくなってしまいました。

コメントありがとうございました。

239 :デフォルトの名無しさん:2014/10/23(木) 15:05:01.01 ID:RjBQcz8M.net
OLEオブジェクトにゼロデイ脆弱性、Microsoftが暫定対策プログラムを公開
http://www.forest.impress.co.jp/docs/news/20141022_672480.html

240 :デフォルトの名無しさん:2014/12/23(火) 20:32:46.30 ID:n+XpzPMA.net
質問です。WIN7、ACCESS2010
初歩的な質問なのですが、
文字列を扱う変数では何文字の格納が可能でしょうか?

241 :デフォルトの名無しさん:2014/12/23(火) 21:36:03.42 ID:M59ZuSy9.net
vbaでgoogle driveにレポートをアップするやり方どこかに良いサンプルないかな。。。google driveのクライアントソフト入ってない場合でも使いたいんで。。。。

242 :デフォルトの名無しさん:2014/12/23(火) 21:50:29.64 ID:W51mY81m.net
>>240
2Gまでだったと思うけどヘルプ確認してくれ

243 :デフォルトの名無しさん:2014/12/23(火) 22:33:08.77 ID:n+XpzPMA.net
>>242
ありがとうございます。
では、500文字くらいはしょぼいレベルと捉えて良さそうですね。

244 :デフォルトの名無しさん:2014/12/24(水) 03:21:35.84 ID:Yxp0O6RL.net
>>240,242-243
2010や64ビットバージョンで変わってなければ
固定長なら約 63KB だけどな
まあ、固定長文字列なんてめったに使う事ないけど

>>241
レポートのアップってのが具体的に何を指してるのかしらんが
そもそもVBAではHTTP通信とか直接サポートされてないから

245 :デフォルトの名無しさん:2014/12/24(水) 22:57:10.21 ID:vBpiiQ3c.net
>>240で質問した者です。
変数に格納した、ただの文字列をテキストファイルに出力することは
可能でしょうか?

246 :デフォルトの名無しさん:2014/12/25(木) 03:42:32.22 ID:c/bUBZQc.net
>>245
可能か不可能かっていうならもちろん可能だけど
やり方は色々あるぞ
純粋にVBAだけならPrint#だけど、あんまりこれ使ってるの見た事ないなw
ACCES的に考えると、1回テーブルに格納してテキスト書き出しじゃないかな

247 :デフォルトの名無しさん:2014/12/25(木) 19:12:54.77 ID:wTh15/U7.net
大量のAccessファイル含め移動するのですが、リンクテーブルのリンク先の一括張り替え機能を実装したいのですが、ご教示いただけないでしょうか?

248 :デフォルトの名無しさん:2014/12/25(木) 19:40:21.24 ID:/AazF+Ck.net
ADOXDB

249 :デフォルトの名無しさん:2014/12/25(木) 20:14:11.26 ID:GnPnKi4m.net
>>246
ありがとうございます。
最終的に長めの一文をテキストファイルに出力するためだけに
ACCESSでテーブル作成したりクエリ組んだりしてるのです。
通常の使い方だとテーブルやクエリをエクスポートでいいんでしょうが
なんせ一文のみなので、printというのを試してみます。

250 :デフォルトの名無しさん:2014/12/25(木) 22:18:03.24 ID:c/bUBZQc.net
>>247
DAOで
CurrentDb().TableDefs("テーブル名").Connect 書き換えてから
CurrentDb().TableDefs("テーブル名").RefreshLink

251 :デフォルトの名無しさん:2014/12/26(金) 09:32:55.94 ID:4ShwS6Rf.net
マルチだよ

252 :デフォルトの名無しさん:2014/12/27(土) 17:01:11.46 ID:Mse9t11G.net
>>244
レポートというかAccessから出力された成果物をGoogleDriveのクライアントソフトが
入っていない場合でもGoogleDriveにアップロードしたいということだったのでした。

そんなことをやる人もあまりいないみたいですね。
Pythonあたりでフィルをアップするプログラムを作ってアクセスから
ファイルパスを引数に持たせて実行させるようなイメージで考えてみようかとお思います。

もっとかんたんにできるぉ。。っていう神がいれば教えてたも。。。

253 :デフォルトの名無しさん:2014/12/27(土) 18:42:52.92 ID:xcx8bYiC.net
>>252
VBAはHTTP通信サポートしてないから、どっちにしろVBAだけではできんが
俺ならC#(かVB.NET)でDLL作ってCOM公開だな
C#のライブラリあるっぽいから、ほぼそれそのままCOM公開する形で行ける気がする
探せば誰かすでに作ってるかもしれんが

254 :デフォルトの名無しさん:2014/12/27(土) 18:46:25.06 ID:MwQYLNUR.net
>>252
pypiで検索してみ

255 :デフォルトの名無しさん:2014/12/27(土) 21:43:55.93 ID:N3QWsaPU.net
情報ありがとうございました。

>>253
VisualStudioもPro同等品がフリーの時代ですからね。
勉強してみたいのですが、時間(&気力)が乏しく、、、まずは探してみます。

>>254
Python自体ほぼほぼ初心者なんで、、、、
探してみます。お勧めとかありませんか?

256 :デフォルトの名無しさん:2014/12/28(日) 01:48:08.62 ID:hWEKpKUx.net
馬鹿には無理

257 :デフォルトの名無しさん:2014/12/29(月) 18:29:45.70 ID:EuG97dxJ.net
>>256
馬鹿なりにいろいろ考えますた。
GoogleCLで何とかできそうです。

258 :デフォルトの名無しさん:2015/01/06(火) 15:02:29.70 ID:L0NjGint.net
AC2000くらいぶりに2013で作るんだが、変わりすぎてて困るなこれ

259 :デフォルトの名無しさん:2015/01/07(水) 12:14:43.42 ID:HwRBQ0K9.net
お前の頭が老化してるんだよ

260 :デフォルトの名無しさん:2015/01/08(木) 11:57:49.05 ID:3EyWpOD1.net
1)のデータの県名を元に、2)のように並べたいのですが、アクセスでやる方法はありますか?

1)
千葉 成田 空港
埼玉 秩父 蕎麦
埼玉 川越 イモ
栃木 日光 華厳
千葉 浦安 ネズミ
埼玉 秩父 三峯
栃木 日光 東照宮
栃木 宇都宮 餃子
千葉 館山 菜の花

 ↓
2)
千葉 成田 空港 館山 菜の花
埼玉 秩父 蕎麦 川越 イモ 秩父 三峯
栃木 日光 華厳 日光 東照宮 宇都宮 餃子

261 :デフォルトの名無しさん:2015/01/08(木) 12:16:44.21 ID:qIfkunGX.net
浦安とネズミーランドはどこに入れば良い?

262 :デフォルトの名無しさん:2015/01/08(木) 13:16:48.72 ID:3EyWpOD1.net
すいません。書き直します。


1)のデータの県名を元に、2)のように並べたいのですが、アクセスでやる方法はありますか?

1)
千葉 成田 空港
埼玉 秩父 蕎麦
埼玉 川越 イモ
栃木 日光 華厳
千葉 浦安 ネズミ
埼玉 秩父 三峯
栃木 日光 東照宮
栃木 宇都宮 餃子
千葉 館山 菜の花

 ↓
2)
千葉 成田 空港 館山 菜の花 浦安 ネズミ
埼玉 秩父 蕎麦 川越 イモ 秩父 三峯
栃木 日光 華厳 日光 東照宮 宇都宮 餃子

263 :デフォルトの名無しさん:2015/01/08(木) 13:22:02.26 ID:qIfkunGX.net
浦安とネズミーランドだけ順番入れ替える基準は?

264 :デフォルトの名無しさん:2015/01/08(木) 16:12:11.95 ID:qIfkunGX.net
出来たからおしまい
https://paiza.io/projects/kXqWvxUj1PG97Z7Vq1KNXA

265 :デフォルトの名無しさん:2015/01/09(金) 08:12:06.75 ID:rJhs2R4+.net
>>264
Runtime Errorがでました

266 :デフォルトの名無しさん:2015/01/09(金) 12:46:37.92 ID:Azg0g72t.net
>>262
横展開の数が固定なら
https://social.msdn.microsoft.com/Forums/ja-JP/cf79c817-f15e-4375-8d9b-95990b2d00de/accesssql?forum=vbajp

増減するならVBAでワークテーブルに入れていくしかないと思う

267 :デフォルトの名無しさん:2015/02/19(木) 08:17:57.69 ID:CSqQB465.net
質問です。
数万レコード程度のログファイルの集計(抽出)をしたいです。

抽出条件は、レコードに担当者と時刻が入っていて、
その時刻の+1分以上かつ+5分以下で、同じ担当者の物です。
最終的には、条件にあてはまるレコードの1つ目と2つ目以降という感じで並べたいです。

今はEXCELのCOUNTIFS関数で半分手作業でやってますが、
かなり手間なのでできればAccessVBAでやりたいです。

よろしくお願いします。

268 :デフォルトの名無しさん:2015/02/19(木) 10:34:22.43 ID:IO29hpKb.net
したいことは判りました。

次のかたどうぞ。

269 :デフォルトの名無しさん:2015/02/19(木) 16:00:09.30 ID:1peKWp+p.net
わからないなら黙ってろよアホか

で、vbaからcountifを呼び出せばいいんじゃねえの?
思いついただけで試してないが

270 :デフォルトの名無しさん:2015/02/19(木) 16:34:11.57 ID:4dFHTBvU.net
>>267
VBAは必要ないでしょ。なにかその後バッチ処理をしてるっていう
なら別だが。

普通に該当のテーブルを元にクエリつくって、パラメータクエリを
作る。フォームを用意して、入力させてその値をパラメータとして
クエリの条件式に入れる。

1分以上5分以下という条件をbetween andで書いて2つパラメータ
を時刻のカラムに入れる。これで抽出は完了。SQLでやってもいい
んだがそこまでは必要ないでしょ。手軽にできるし。

271 :デフォルトの名無しさん:2015/02/25(水) 19:46:25.88 ID:u8BX93H2.net
定時で帰ってるのがばれるじゃないか

272 :デフォルトの名無しさん:2015/02/27(金) 10:17:16.72 ID:ILfHzu6L.net
>>271
密度が違いますと言い張れば大丈夫。

273 :デフォルトの名無しさん:2015/04/11(土) 08:59:32.35 ID:5EmI+Hzg.net
Excelファイルで(表現上CSVで表現してますが、XLSXファイルの1つのシート上のデータだと思ってください。)

999,999,AAA,999・・・・・・
999,999,BBB,999・・・・・・
999,C  ,999,999・・・・・・
999,999,DDD,999・・・・・・

という4件のデータがあるとします。
これを、SELECT * FROM のクエリをDao.Recordsetで読み込みたいのですが、
Fileds(1)のところのタイプは数値型。
ここで、3行目のデータを見に行くと、フィールドの型が数値型なのに「C」が入っているためRS.Fields(2).Valueを参照しようとすると異常終了してしまいます。
全部のフィールドを強制的に文字列型で見る方法はないのでしょうか?

274 :デフォルトの名無しさん:2015/04/11(土) 09:00:28.88 ID:5EmI+Hzg.net
RS.Fields(2).Value

RS.Fields(1).Value
に訂正。m(_ _)m

275 :デフォルトの名無しさん:2015/04/11(土) 18:29:40.40 ID:hFjl3X66.net
>>273
落ちる所のコードが無いから分からないけど
dim aaa as long
aaa=RS.Fields(1).Value
みたいな使い方しているなら
dim aaa as long
dim bbb as string
bbb=RS.Fields(1).Value
bbbを数値判定してから本来のaaaに取得
判定方法はIsNumericやCIntやCLngなど

276 :デフォルトの名無しさん:2015/04/13(月) 17:40:35.62 ID:gbfuHaFd.net
Access2013です。

いろいろと作っているうちに突然コントロールソースに持っているユーザー定義関数が働かなくなり、#NAMEのエラーが出る様になりました。

ファイルが壊れたのでしょうか?

277 :デフォルトの名無しさん:2015/04/13(月) 18:03:17.07 ID:gbfuHaFd.net
>>276
自己解決しました。
関数名を英数字のみにしたら動きました。
ただ、動かなくなったきっかけがわからない。

278 :デフォルトの名無しさん:2015/04/14(火) 07:53:37.48 ID:0HPBZIqn.net
>>277
そもそも関数名に日本語使うそのセンスを疑う

279 :デフォルトの名無しさん:2015/04/14(火) 15:41:26.89 ID:b8Z+Xie9.net
だってイベントプロシージャは日本語名で動くじゃん

280 :デフォルトの名無しさん:2015/04/14(火) 19:08:51.74 ID:hqkBvwrA.net
漢字カタカナを関数名にグイグイ使ってました。まあ今日も明日も使っちゃうんですが。

281 :デフォルトの名無しさん:2015/04/15(水) 22:25:26.57 ID:15xIuB57.net
IF文についてなのですが、
IIf(A = 0 Or B = 0 Or C = 0 And D = 0 ...
という書き方の場合、「Aが0」もしくは「Bが0」もしくは「Cが0、かつDも0」のいずれかの場合、
という条件判定になるという考え方で良いでしょうか?

282 :デフォルトの名無しさん:2015/04/16(木) 08:12:50.91 ID:gzgbYtwZ.net
>>281
一緒といえば一緒ですがIF?IIF?どちらでしょう?
> という書き方の場合、「Aが0」もしくは「Bが0」もしくは「Cが0、かつDも0」のいずれかの場合、
> という条件判定になるという考え方で良いでしょうか?
そうですね

ハッキリさせたい時には()でくくると分かり易くなりますよ
こんな風に
IIf((A = 0 Or B = 0) Or (C = 0 And D = 0), "true", "false")

IFならモジュールにテスト用の関数作って確認できますし
IIFならもっと簡単にクエリー等でテスト出来ますよ
まずは試してみる事をオススメします

283 :デフォルトの名無しさん:2015/04/16(木) 13:45:46.84 ID:OCYKBdEo.net
>>282
ありがとうございます、安心しました

284 :デフォルトの名無しさん:2015/04/18(土) 01:50:57.01 ID:pucpWveX.net
ExcelVBAをほんの少しいじった程度ですが、同じことがAccessVBAでもできますか?
たぶんできたとして、データアクセスが目的ならExcelよりAccessのほうが早いのかな。

285 :デフォルトの名無しさん:2015/04/18(土) 03:55:58.31 ID:j/wjXDDU.net
WSH(VBScript, JScript), PowerShell からでも、
呼び出せるよ

Accessはデータベースだから、
Excelよりもデータの整合性は、より安全で、
何々明細とかを扱う、本格的な業務に適している

286 :デフォルトの名無しさん:2015/04/18(土) 07:06:32.83 ID:elh8iJrV.net
>>284
Excel にデータエクスポートして開いてピボット集計して保管してzipにしてメール添付して送信、とかExcelの外から出来る。

287 :デフォルトの名無しさん:2015/04/18(土) 09:55:54.98 ID:QuJhi9bL.net
エクセルの65535行制限って解けたんだっけ?

288 :デフォルトの名無しさん:2015/04/18(土) 18:09:00.24 ID:05gN+8sT.net
xlsxファイルからDAO.RecordSetでデータを取り込んでいます

dim A

Do Until Rs.EOF=True
For i=1 to 10
A=Rs.Fields(i).Value
InsertRS.Addnew
InsertRS.Fields(i).Value=Rs.Filds(i).Value
Next
Rs.MoveNext
Loop


のようにしてエクセルデータからデータベースに保存してます。

で、
A=Rs.Filds(i).Value
は無意味なコードなのですが、
これがないと保存がされません。
ワンクッション?が必要なようなんです。
これ、原因や同じような症状でた人いますか?

289 :デフォルトの名無しさん:2015/04/18(土) 19:59:14.52 ID:C1NhVGiv.net
それ以前にAddnewしてる位置がおかしい気がするんだが

290 :デフォルトの名無しさん:2015/04/18(土) 21:20:04.66 ID:05gN+8sT.net
書き間違えました。
実際は、Forのまえにaddnewしてnextのあとにupdateしてます。

291 :デフォルトの名無しさん:2015/04/19(日) 02:01:53.14 ID:WMQbPkw9.net
書き間違いとか実際のコードじゃないもの出されてもなぁ
お前の勘違いの可能性が圧倒的に高いと思うぞ

292 :デフォルトの名無しさん:2015/04/19(日) 07:19:00.86 ID:8d6tresr.net
事実、
ワンクッションのある無しで発生するんです。

293 :デフォルトの名無しさん:2015/04/19(日) 09:54:27.68 ID:S72BOy6b.net
フィールドが100個くらいあるエクセルデータを同じように取り込んだときに経験したことある
ケド、、、、原因調べないでおわっちゃたなwそーいえばww
原因を探るためにDebug.Print入れたら登録がされるようになって、原因解明より先に仕事・・・・となって、そーいえばそのままww

294 :デフォルトの名無しさん:2015/04/20(月) 08:09:04.77 ID:ZV6mzr+5.net
>>287
ここ、Accessスレですよ。

それとGoogleで調べれば分かるような内容の質問はどこのスレでも
禁止です。頭に叩き込んでおくといいですよ。

295 :デフォルトの名無しさん:2015/05/02(土) 06:47:20.55 ID:cQx6YORh.net
中文(簡体)文字のファイル名をダイアログで取得して、コピーしたり開いたりしたいんですが、"見つかりません"と言うメッセージに。
中文文字の入ったファイル名やフォルダー名を取り扱う方法かヒント頂けないですか。

296 :デフォルトの名無しさん:2015/05/14(木) 12:50:18.83 ID:No/KpZZc.net
二つ教えてください。

1コンボボックスコントロールの▼が反応しない時がある

2リストボックスコントロールAからデータを取得するとき
A.BoundColumn=1
変数=A.ItemData(A.ListIndex)
A.BoundColumn=2
変数=A.ItemData(A.ListIndex)
A.BoundColumn=3
変数=A.ItemData(A.ListIndex)
A.BoundColumn=4
と一つの関数内で取得する列を変更してデータを取得しようとしても、データが取得できる場合と取得できない場合が発生するのはなぜでしょうか?

297 :デフォルトの名無しさん:2015/05/16(土) 10:31:05.05 ID:s10/F9Sk.net
Accessって新しくなればなるほど、不安定化してない?
なんとなくだけど

298 :デフォルトの名無しさん:2015/05/16(土) 12:20:26.27 ID:mEQOWf9/.net
>>297
激しく同意
Accessも立ち位置が怪しくなりつつあるのかなって。。。。
今の時代ならForguncyみたいなのがオフィスファミリーのラインナップに
ほしいとこだね。

299 :デフォルトの名無しさん:2015/05/16(土) 14:09:51.76 ID:/YqkcKmb.net
>>297
ど安定だと思ってた。難しい事しないからかもだけど。

300 :デフォルトの名無しさん:2015/05/16(土) 17:59:47.30 ID:s10/F9Sk.net
/decompileオプションをつけてファイルを開くなんて、昔はなかったのになぁ・・・。

301 :デフォルトの名無しさん:2015/05/16(土) 22:55:57.30 ID:xhmYU3Qu.net
>>297
俺の体感ではすくなくとも2007までは順調に安定化してるけど
それ以降は使ってないから知らん

>>300
/decompileっていつからあるんだろうな
昔は全オブジェクトを別mdbにエクスポートとか結構頻繁にやってた記憶が

302 :デフォルトの名無しさん:2015/05/17(日) 10:45:41.40 ID:vGSHuJcU.net
>>301
97くらいからはあったはず。
でも/decompileを使うようになったのは2003以降かなぁ?
むかしはmdbファイル丸ごと見事に壊れたから/decompileすら登場の出番が無く
今はVBAを入れるとスグ壊れるから/decompileが効力を発する機会が増えた

うーん・・・改善してるのかもなw
ただ開発をやっている人から見るとVBAをいじってる最中の異常終了が増えた
感じがするから不安定化しているように見えるのかも

303 :デフォルトの名無しさん:2015/05/22(金) 21:24:51.38 ID:zmoBF1Q0.net
[Forms]![コントロール名]......

のように使う
 !

 フォーム.プロパティ

「!」と「.」
の違いってなんなんでしょうか?

304 :デフォルトの名無しさん:2015/05/22(金) 21:51:36.82 ID:yor6OqJo.net
/decompile 知らなかった。

305 :デフォルトの名無しさん:2015/05/23(土) 12:42:53.54 ID:J5W2ethN.net
俺もだよ

>>303
それも知らないねぇ。
ただ、外部モジュールから参照するときは ! でないとダメなんじゃなかったかな。違ったかもしれん。

306 :デフォルトの名無しさん:2015/05/23(土) 12:45:03.86 ID:J5W2ethN.net
モジュールって何やねん
オブジェクトやオブジェクト

307 :デフォルトの名無しさん:2015/05/23(土) 12:50:24.50 ID:VCG+Khsg.net
外部オブジェクト用なんだ、、、
知らなんだ

308 :デフォルトの名無しさん:2015/05/23(土) 13:54:06.28 ID:8oQ8jNeY.net
!はコレクションの要素を指定するときに使う
.はオブジェクトのプロパティ(メンバ)を指定するときに使う

309 :デフォルトの名無しさん:2015/05/27(水) 08:05:22.83 ID:lvaBWQ33.net
>>308
コレクションの要素の意味が分からん。

310 :デフォルトの名無しさん:2015/05/27(水) 14:12:01.89 ID:5bPXfDHX.net
>>309
コレクションの意味がわからんのか?
要素の意味がわからんのか?

簡単に言えば、複数のうちのどれか ってことだが
何が複数なのかは!の前のやつによって違う

Formsはまさにフォームのコレクション
個別のフォームならControlsが既定コレクション
レコードセットだとフィールドが既定のコレクション

311 :デフォルトの名無しさん:2015/05/27(水) 21:13:26.76 ID:GAmiGWam.net
これっくしょんのっ♪ おべんっとばっこにっ♪

312 :デフォルトの名無しさん:2015/05/27(水) 22:22:21.63 ID:ZDZjEVN6.net
書く人の好みもありますかね
私はなるべく「!」ではなく「.」を使ってます

313 :デフォルトの名無しさん:2015/05/27(水) 22:54:50.76 ID:XhKCRfpS.net
「!」を「.」では動かないでしょ?

314 :デフォルトの名無しさん:2015/05/27(水) 22:59:28.17 ID:ZDZjEVN6.net
対応したプロパティに書き換えて使ってます

315 :デフォルトの名無しさん:2015/05/27(水) 23:07:04.59 ID:XhKCRfpS.net
ふ〜ん、そうなの
(どゆことかわかってないが)

316 :デフォルトの名無しさん:2015/05/28(木) 10:07:42.72 ID:/8nOg4qQ.net
クラスのメソッドと
オブジェクトのメンバの違いっしょ

317 :デフォルトの名無しさん:2015/05/28(木) 11:27:33.59 ID:fu7GUEC6.net
>>316
同じ事を言ってるようにしか見えんが
クラスとオブジェクトはどういう意味で使い分けてるんだ?
メソッドとメンバはどういう意味で使い分けてるんだ?

318 :デフォルトの名無しさん:2015/05/28(木) 13:25:09.01 ID:/8nOg4qQ.net
馬鹿には無理

319 :デフォルトの名無しさん:2015/05/28(木) 18:22:57.95 ID:C/2xaBAg.net
>>315
a = [Forms]![f2]![combobox1].Value
a = Forms("f2").Controls("combobox1").Value

他フォームの値を利用する場合等は、こんな感じで書いてます
個人的にコレクション名が入った方が分かり易いのでこうしています
どちらの書き方が良いとか悪い、というのは無いので書く人次第ですね

320 :デフォルトの名無しさん:2015/05/28(木) 21:06:14.54 ID:bDSn3nA4.net
ほほう、勉強になります。

321 :デフォルトの名無しさん:2015/05/29(金) 05:39:51.54 ID:QOrEbIFI.net
後者の方がメタプログラミングへの可能性が感じられて良いね

322 : 【豚】 :2015/06/01(月) 08:08:03.93 ID:SmEysG22.net
びっくりおみくじ

323 :デフォルトの名無しさん:2015/06/08(月) 08:55:28.30 ID:0Vy1Z1yY.net
>>319
つまりどちらの書き方でも
同じ値が取得出来る

324 :デフォルトの名無しさん:2015/06/11(木) 14:05:13.01 ID:cKv7S2xh.net
フォーム内のテキストボックスで教えてください。

テキストボックスに値を入れるために選択すると、0が表示されます。
空白の状態から値を入力できるようにするには、どこの設定を変えれば良いのでしょう?

325 :デフォルトの名無しさん:2015/06/11(木) 14:06:45.16 ID:cKv7S2xh.net
>>324は非連結のテキストボックスの場合です。

326 :デフォルトの名無しさん:2015/06/11(木) 14:16:53.77 ID:cKv7S2xh.net
>>324は解決しました。
フォームオープン時にVBAで0を設定していました。
他人のソースだったので気がつきませんでした。

スレ汚し失礼いたしました。

327 :!omikuji:2015/06/24(水) 19:15:19.74 ID:QTgmX67K.net
>>319
クエリの抽出条件に書いてみた。
コレクション(index)の書き方ではダメだった。

328 :デフォルトの名無しさん:2015/06/25(木) 03:15:52.99 ID:pZAotZeg.net
>>327
そりゃVBAの構文をクエリに書いても無理でしょうに

329 :デフォルトの名無しさん:2015/06/25(木) 05:46:02.39 ID:0DqbKMKe.net
>>328
そうなのですか、ビルダーで作成される以外の記述を試したかったのです。

330 :デフォルトの名無しさん:2015/06/25(木) 07:48:35.30 ID:tqVIvEYY.net
お試しで書いたプログラムを納品されたクライアントがかわいそう

331 :デフォルトの名無しさん:2015/07/01(水) 22:29:02.00 ID:r6P8NuLo.net
>>330←納品だの客だの何言ってんのこのバカ?

332 :デフォルトの名無しさん:2015/07/02(木) 09:39:28.85 ID:CcSdJJgr.net
>>331
Accessでしょっぱい商売やってる、自営業のプログラマなんだろww
ハッキリ言って取るに足らない存在。

333 :デフォルトの名無しさん:2015/07/02(木) 15:10:49.63 ID:2kk3aD1Z.net
ツボったω

334 :デフォルトの名無しさん:2015/07/02(木) 21:31:36.86 ID:UqhUXHzI.net
俺もしょっぱい2号

335 :デフォルトの名無しさん:2015/07/17(金) 07:28:53.29 ID:6H2NxaAj.net
プロジェクトのテーブルに
プロジェクト番号、
作業内容Aの担当者、
作業内容Bの担当者、
作業内容Cの担当者と入力するテーブルがあり、
それとは別に工数入力テーブルで、
各担当者毎にプロジェクトに対しての作業工数を付けたいのですが
どのようなリレーションシップの関係を持たせれば良いでしょうか?

336 :デフォルトの名無しさん:2015/07/17(金) 12:20:42.38 ID:7dLfVbOx.net
>>335
リレーションって、工数入力テーブルのテーブルレイアウト決まってるのか?
まあ、プロジェクト番号と担当者で参照するだけなんだけど

そのプロジェクトのテーブル含めて、DB設計もうちょっとちゃんと勉強した方が良いんじゃね

337 :デフォルトの名無しさん:2015/07/27(月) 17:54:56.83 ID:cZFieeEU.net
VBAのソースが開けなくなる現象ってどうしたらいいの?

decompileつけても治らない

新しいファイル作ってインポートもダメ

338 :デフォルトの名無しさん:2015/07/27(月) 20:40:40.78 ID:n6WPrg6a.net
押してもダメなら・・・

339 :デフォルトの名無しさん:2015/07/27(月) 20:59:07.74 ID:LaMoSGUn.net
>>337
数年に一回、私もそんな目にあいます。
だいたい復旧出来ないので、バックアップ欠かさずとってます。
どうにかなるなら私も知りたいですが。

340 :デフォルトの名無しさん:2015/07/27(月) 21:30:17.92 ID:FqSPmPlY.net
やっぱみんな同じ現象に悩まされてるんだね

ネットワーク共有フォルダ上だと起きやすい

ネットワーク共有フォルダ使わなきゃいいんだけど、うちの情シスが変な縛りかけるからコレしか手がないし

341 :デフォルトの名無しさん:2015/07/27(月) 23:01:15.51 ID:vqEIRiU+.net
ソースコードは、単なるテキストデータだろ?

それが開けないのは、
そのデバイスがバックアップ・メンテナンス中などで、
ロックされているのかも

342 :デフォルトの名無しさん:2015/07/28(火) 01:08:06.50 ID:/CfsPtPn.net
壊している方は
ネットワーク上で直接開いたり
mdbをフロントとDBに別けなかったり
ほとんど同じパターンですよね

>>341
Accessを使われていない方とお見かけしました
mdbが破損するとソースも壊れる事があります

343 :デフォルトの名無しさん:2015/08/01(土) 02:11:12.48 ID:Gxa4R9yG.net
Access2010利用

Access起動時の「コンテンツを有効化にする」を押下した直後に、関数を実行する方法はあるのでしょうか?

現在は「AutoExec」マクロから「プロシージャの実行」を行い、対象の関数を実行させていますが、Access起動時の「コンテンツを有効化にする」を押下する前にマクロが実行され、プロシージャが実行出来ない旨のエラーメッセージが表示されてしまいます。

ExcelのAuto_Open関数は「コンテンツを有効化にする」押下後に、処理が始まっていたので、それをAccessでそれを実現したいと思っています。

処理内容は「Accessウィンドウの不可視化
」「メニューバーの不可視化」「対象のフォームを開く」です。

どうかご教授をお願いいたします。

344 :デフォルトの名無しさん:2015/08/01(土) 05:30:07.04 ID:fplyMpww.net
>>343
>処理内容は「Accessウィンドウの不可視化
>」「メニューバーの不可視化」「対象のフォームを開く」です。
それ全部マクロなしで設定でできる気がするけど

スタートアップ用のフォーム作って起動時指定して、そのフォームのプロシジャで設定してやれば良いんじゃね

345 :デフォルトの名無しさん:2015/08/01(土) 23:31:54.27 ID:Gxa4R9yG.net
>>344
ありがとうございます
確かにマクロを使用せずに設定出来ました
更にFormLoadを利用したところ「コンテンツを有効化にする」押下後に動作しました

今まで業務ではExcelばかり利用していましたので、Accessのオプションの多さ、分かりづらさ(自身の無知に起因する事が多いですが…)に戸惑っています
Accessを使いこなせる人は本当にすごいと思いました

346 :デフォルトの名無しさん:2015/08/02(日) 05:14:22.27 ID:ZRhH79SV.net
ExcelのVBAはExcelというアプリケーションを操作するためのものだけど
AccessのVBAはAccessを使ってアプリケーションを作成するためのものだからな

347 :デフォルトの名無しさん:2015/08/02(日) 08:10:22.71 ID:u4JV0/NP.net
2行目”〜Accessというデータベースを操作する〜”のほうが名言ぽくなりませんか
(添削ではありません。提案です)

348 :デフォルトの名無しさん:2015/08/02(日) 08:29:50.19 ID:dTRZmQiN.net
>>347
そうは全く思わない
VBAはデータベース操作のためのものではない
あくまでアプリ作成のためのもの

349 :デフォルトの名無しさん:2015/08/02(日) 11:40:56.13 ID:GsLj6RLA.net
>>348
確かにExcelとは違って、アプリケーションを作っている感覚が非常に強いですね
Access感を感じさせないUIにする事も簡単でしたら
そのせいで、フォームのUIを美しくする為に時間がかかってしまいますw

350 :デフォルトの名無しさん:2015/08/02(日) 11:42:54.62 ID:GsLj6RLA.net
×:Access感を感じさせないUIにする事も簡単でしたら

○:Access感を感じさせないUIにする事も簡単でした

351 :デフォルトの名無しさん:2015/08/02(日) 11:55:46.07 ID:LbLYBwwY.net
データベースの操作もお手軽に出来て便利。
アプリ開発環境としてはどうなの?
私は零細企業の社内システム開発用として便利に使わせて頂いてます。

352 :デフォルトの名無しさん:2015/08/02(日) 12:37:07.35 ID:Uy/1MbzZ.net
両者のVBAはデフォルトの参照設定が違うだけですよ
VBA以外は言われている通りAccessの方がはるかに強力ですね
Excelはユーザーフォームくらいです

特殊なレポート印刷なんかは無理してAccessでゴリゴリ書くより
Excelで書式作ってAccessから流した込んだ方が楽だし
データ操作ならAccessじゃないとキツイし
それぞれ得意分野はありますよね

353 :デフォルトの名無しさん:2015/08/02(日) 21:08:18.97 ID:AR+WC9yM.net
今更だが >>343 はセキュリティの設定だけで回避できるんじゃ?
そもそもその「コンテンツを・・」が出ないようにすることのほうが重要なんでは?

354 :デフォルトの名無しさん:2015/08/02(日) 22:38:28.30 ID:ZRhH79SV.net
>>353
それはアプリケーション側ではなんとも出来ないので

355 :デフォルトの名無しさん:2015/08/02(日) 23:04:31.90 ID:AR+WC9yM.net
は?  Access2010利用って書いてあるだろ? たとえそれがRuntimeだとしても
ロケーションを信頼するとかで可能だろ? 不特定多数に配布するケースでも
インストーラを調整することで「なんとも出来ない」は回避するものだろ?
毎回「コンテンツを・・」を表示させるほうがどうかしてるぞ?  そんなの誰が信用してくれるんだ?

356 :デフォルトの名無しさん:2015/08/03(月) 11:17:43.06 ID:2bNGPX4C.net
あれ?コンテンツ〜の話って
「プライベート ネットワーク上にある信頼できる場所を許可する] チェック ボックスをオンにして回避するって話ですか?
2010だと↑をオンにしてないと変な場所では最適化も出来なかったような

357 :デフォルトの名無しさん:2015/08/03(月) 13:29:01.86 ID:cMN9HbGV.net
>>355
アプリケーションが自分自身の信頼性を操作するのか
そんなアプリこそ信用できんわ

>>356
べつにネットワーク上に限った話ではないと思うが

358 :デフォルトの名無しさん:2015/08/03(月) 16:54:08.69 ID:CU261QGz.net
を? MSが推奨してんのに信用できねえ てか  Accessは使ってやるけどMSの言うことは聞く耳持たねてか 偏ってるな

359 :デフォルトの名無しさん:2015/08/03(月) 19:02:41.55 ID:cMN9HbGV.net
>>358
MSが何を推奨してるのかしらんが
アプリケーションの意味が通じてないのかね
アプリケーションを.ACCDB(.MDBでも.ACCDEでも良いけど)に置き換えて考えてみ

360 :デフォルトの名無しさん:2015/08/03(月) 20:41:54.56 ID:CU261QGz.net
その域じゃ無いことが判ったからいいよw その域じゃない奴に諭される謂れわ無いわw
いくつかのキー・ワードで「あぁ、あのことか」って気付けないならこれ以上は時間の無駄  おまえの言うとおりでいいよw
そもそもここはAccessの板だし、おれはAccessの話をしてるんだ アプリケーションのアの字も使って無ぇw

よしんばAccessで作られた業務パッケージをアプリと呼びたいなら呼べばいいが、その業務アプリを動作させるうえで
発生するセキュアに関するメッセージはAccessの基本機能で回避できる って云ってるんだ
それを「信用できねえ」っつーんなら使わなくていいんじゃね? 世の中にはごまんと同様の機能を備えたアプリケーションが存在するだろ
Accessに拘る理由なんざこれっぱかしも無ぇだろ 俺の文章のどれがおまえの琴線に触れたか知ったこっちゃ無いが 「ごめんな」

361 :デフォルトの名無しさん:2015/08/03(月) 21:08:56.51 ID:Mp/3eH1E.net
逆鱗(ぎゃくりん)

362 :デフォルトの名無しさん:2015/08/03(月) 22:23:38.07 ID:C0QRYaFQ.net
runtime 2010(2013も同じ)の起動時のセキュリティ警告を出ないようにする
http://www.mkkobo.com/runtime/runtime04.htm

363 :デフォルトの名無しさん:2015/08/04(火) 03:50:55.73 ID:Kz/6+HRH.net
>>343で質問した者です
細かい利用環境等を書いてなかった事で迷惑をかけました
ごめんなさい

会社独自で開発したと思われる共有サーバシステム上に、accdbを置いて利用者は「読み取り専用」で利用します。(accdeは共有サーバ上では起動できません。)

なので、Access内で設定出来るオプション以外は全く自由がきかず、共有サーバ上でaccdbを開くと必ず「コンテンツを有効化にする」ボタンが表示されてしまうのです

今回の問題自体は、FormLoad関数をExcelで言うAutoOpen代わりに使う事で解決出来たと思っています

しかしAccessって、Web上で資料を探すにしても、資料が豊富なExeclVBAに比べてAccessVBAは資料が少なく、更にバージョンによって仕様が大きく変わるので大変ですね

このスレのやり取りを見ているだけで非常に勉強になります
ありがとうございます

364 :デフォルトの名無しさん:2015/08/04(火) 04:09:40.86 ID:JacjvlNa.net
>>363
ファイル共有のプロトコルとかによって制約あるかもしれんが
共有フォルダを信頼できる場所に追加する事は可能だぞ

ただ信頼されてないaccdb(のVBA)から、信頼できる場所を設定とか出来ないし
そんなことができたら信頼できる場所の意味がないからな

365 :デフォルトの名無しさん:2015/08/05(水) 15:51:27.89 ID:dmHYZv4f.net
利用環境:Access2010、Win7
現在、国内の物件情報をテーブルに入力して、出力フォームで参照出来るようにしています
テーブルのフィールドは「物件No(主キー)」「物件名」「県」「市」「区」「町」「番地」「物件情報」です

新しいレコードが増えた場合は、入力フォームから、データを入力出来るようにしようと思っています

ここでお聞きしたいのは、入力フォームで新しいレコードを登録しようとした際の「重複チェックの方法」です
物件名は、入手先の情報や、入力者の考えによって
様々な表記ゆれが生じます(例:2棟 二棟 A棟 U棟)
入力規則を設ける事によってある程度は回避できると思いますが、
回避が難しいケース(例:ライオンズマンション Lionsマンション Lion'sMansion)の場合は
みなさんはどうやって重複チェックを行っているのでしょうか?

自身で考えた所では、入力フォームで新たなレコードを登録する際に、
似ている物件名があった場合は、お互いのレコードで「県」「市」「区」「町」の重複チェックを行い、最終的にユーザーに「似ている物件がありますが、これとは別の物件ですか?」と警告を出そうと思っています
そうする場合は、「フリガナ」フィールドを追加する必要があると思っています

しかし、もっとスマートな方法があるのではないかと思い、ここで質問させていただきました
よろしくお願いします

366 :デフォルトの名無しさん:2015/08/05(水) 16:57:05.93 ID:Bc8ICzH9.net
>>365
挙げられてますが、半角数字のみなど番地の入力制限は必須でしょうね
物件名のフリガナで番地違いもチェックされるみたいですし
十分スマートだと思いますよ

自分だったら番地まで一致した時にアラート出しますね
残りは住所or物件名でソートした物件リストに丸投げしちゃいます

367 :デフォルトの名無しさん:2015/08/05(水) 17:07:34.90 ID:URaglvwf.net
>>365
月1くらいで住所は同じ、物件名が違うの重複チェックを動かしてリストに出すような運用にするとか。
難しいことをら考えずに済む。

368 :デフォルトの名無しさん:2015/08/05(水) 17:23:47.23 ID:ndgPjsPh.net
なんで郵便番号のフィールドがないのか不思議

369 :デフォルトの名無しさん:2015/08/05(水) 22:00:34.14 ID:VP6wM0Pb.net
時代はすでに二十一世紀なんだよ いまさらフリガナでもあるまい
フィールドひとつ追加 lat,lng 緯度・経度 43.386338,144.008751 下六桁あたりで固定すれば
間違いようも無いだろ 不動産業界に身を置きながらなんでそんなことにも気付かない
マップアプリに上の数字コピペしてみりゃ、世界中の誰だって間違いようも無い

なに? じゃあ緯度・経度どうやって調べるだと? そのぐらいじぶんで調べろ 長押しするだけだ
まぁ、ゆえに危険が危ないがな  便利って物はとてつもなく不便なものにも等しいんだ 覚悟して使え

雌阿寒岳山頂が出るはずなんですけど、違う位置を示すマップアプリ有ったら教えてください 使用禁止にしますので

370 :デフォルトの名無しさん:2015/08/05(水) 22:40:26.46 ID:yfcMdSNW.net
まあ、ACCESSもVBAも全く関係ない話なんだが
最終的には人間が検査しないとどうしようもないんだろうなと思う
市区町村番地あたりまではルール決めて、そこまで一致なら警告でいいんじゃね

371 :デフォルトの名無しさん:2015/08/06(木) 01:30:34.87 ID:f5x8JVe4.net
すみません、郵便番号のフィールドもあります。入力し忘れていました

・1.レコード入力時に、住所関連のフィールドを利用して重複チェックを行い、ヒットした場合は警告を出す
・2.定期的にテーブル内のレコードの重複チェックをする
・3.物件の座標を利用して重複チェックをする

上記3つの案をいただいたと思いますので
1と2を組み合わせて運用したいと考えます

3の案>>369は、完全に自身の頭に無かったアイデアなので驚きました
入力者の稼働を考えて、負担にならなければ導入してみようと思います

たくさんのレスをいただき、心から感謝致します
受けた恩を忘れず、このスレに来た別の質問者の力になれるよう精進します

372 :デフォルトの名無しさん:2015/08/06(木) 09:14:11.16 ID:/XuT1ECN.net
警告出すとかVB脳的にダサいから
郵便番号入力してヒットしたらリストボックスに表示させて
番地を半角か全角縛りにしてヒットしたらリストボックスに表示させる
リストボックスが件数ゼロなら新規入力ボタンをイナーブル
あぁ俺それ作りたい

373 :デフォルトの名無しさん:2015/08/07(金) 12:16:55.68 ID:TsVm0Bt4.net
人名・地名、固有名詞系はなあ 特殊と考えたほうが無難だからな  例えば・・
吾妻 という人名のふりがなを ある人は「あづま」と入れ別の人は「あずま」と入れてしまったり
じつは「あがつま」と読みます だったり
3-11-22 という地番を三丁目11番22号 三丁目11-22だの、 宛名印刷に合わせて三丁目十一番二十二号としていたり・・
それが結構な確率で頻出するのだからやっかい

それらを一律の規律で縛るのはあまりクレバーとは言えない時代になってるような
鱸 が読めないゆとりのためには「ふりがな」が必要 ってのなら意義あるだろうけど  まあ、おれだけど

374 :デフォルトの名無しさん:2015/08/11(火) 19:16:37.92 ID:FwE103qy.net
フォームでFilter関数使おうと思ったら
IntelliSenseが効かなくて
無理に使おうとしてもエラーで使えず
???と思ったら
Filterプロパティとバッティングしてた。
VBA.Filterで解決したんだけど
プロパティの値ってオブジェクト変数無しでもアクセスできるのな。

375 :デフォルトの名無しさん:2015/08/11(火) 23:34:57.56 ID:AWvgSxoB.net
>>374
フォームモジュールでそのフォームのプロパティならな

376 :デフォルトの名無しさん:2015/08/12(水) 14:59:32.42 ID:G2C7HV6B.net
皆様、すみません

フォームAに入力されているテキストボックスAの値(数値)を、
フォームB(データ登録用)を開いた際に自動的にテキストボックスBに入力させないのですが、どうしてもわかりません

openform 〜 , , , , acformadd で記述しています

教えていただけないでしょうか

377 :デフォルトの名無しさん:2015/08/12(水) 15:32:18.52 ID:Q+lcejU0.net
>>376
自動入力「させない」になってますが「させたい」って事ですよね?

Form_Load もしくは Form_Open イベントに
Me.テキストボックスB.Value = [Forms]![フォームB]![テキストボックスA].Value
もしくは >>319 みたいに
Me.テキストボックスB.Value = Forms("フォームB").Controls("テキストボックスA").Value

Load、Openどちらでも動くと思いますが、適した方を使ってください
コレクションに関しても好きな方を使ってください

378 :デフォルトの名無しさん:2015/08/12(水) 16:26:57.95 ID:G2C7HV6B.net
>>377

あっさりとできました
ありがとうございました

たしかにformのイベントでやるべきでしたね、思い付かなかったです
勉強になりました

379 :デフォルトの名無しさん:2015/08/12(水) 18:38:30.96 ID:6lFy7xXj.net
>>376
単純に
DoCmd.OpenForm "フォームB", , , , acFormAdd
Forms!フォームB!テキストボックスB.Value = Forms!フォームA!テキストボックスA.Value
で出来ると思うけど?

380 :デフォルトの名無しさん:2015/08/17(月) 21:45:03.07 ID:7VERYxcQ.net
今使っているACCESSデータをPC3台で共有しようと思っています。

その場合、テーブルをサーバーPcに、フォームとクエリをクライアントPCに入れて使うと良いとのことでした。

ただいま、フォームを非連結にして、ADOでの追加や更新ができるように変更中です。

質問ですが、
すべてのフォームを非連結にするべきなのでしょうか?
データの追加更新のない、閲覧専用のフォームをネットワークトラフィックを考えて変更すべきでしょうか?

また、分割したテーブルのあるACCESSデータをNASに入れようかとも思っているのですが、PCの場合と動作に違いはでますか?(ここは単にスペックの問題でしょうか?)

どうかお時間のあるかた、教えていただけないでしょうか。

381 :デフォルトの名無しさん:2015/08/18(火) 01:04:22.51 ID:l45kMI9F.net
テーブルを外部からリンクすれば連結でいける

382 :デフォルトの名無しさん:2015/08/18(火) 06:18:28.72 ID:KaSAZPht.net
>>380
テーブルだけのファイルをネット上の共有フォルダに置いて、それのリンクテーブルとその他のオブジェクトが入ったファイルを配布して使うだけ。
フォームの作り直しはしなくて良いと思います。

383 :デフォルトの名無しさん:2015/08/18(火) 19:55:28.61 ID:LTr8/sln.net
>>381
>>382

ありがとうございます

今まで作ったフォームをすべて非連結にするのは難しそうなので追加更新するフォームだけにしようと思います。

384 :デフォルトの名無しさん:2015/09/02(水) 22:58:44.74 ID:U41rngxq.net
>>382
その他のオブジェクトの入ったファイルは複数人で開いても問題ないのでしょうか?

385 :デフォルトの名無しさん:2015/09/03(木) 12:17:52.51 ID:TMANfQ/W.net
>>384
オブジェクトだけのファイルは各パソコンにコピーして使うの。

386 :デフォルトの名無しさん:2015/09/09(水) 20:14:57.09 ID:k4ZkuMcU.net
二次元配列からレコードにデータを入れる方法は

With Rcd
.AddNew
For i = 0 to 99
 .Fields(i).Value = x(0,i)
Next
.Update
End With

という様な地道な方法しかないんでしょうか?
データを入れるのに時間が掛かるので、Excelの

Range(Cells(1,1),Cells(UBound(x,1),UBound(x,2)) = x

みたいな形で一気に代入出来て処理時間を短縮できる方法はないのでしょうか?

あとDoCmd.TransferSpreadSheetでエクセルシートをインポートする方法も試したんですが、
Access側からExcel.Applicationを取得してワークブック開く方法だとエラーが出て、手動で開いた状態にしておくと読み込むんですが、
これはインポートする際にいちいちエクセルで開いておく必要があるんでしょうか?

387 :デフォルトの名無しさん:2015/09/10(木) 04:22:41.07 ID:t/YL/t1I.net
>>386
>地道な方法しかないんでしょうか?
地道に見えるんですね・・・。

DoCmd.TransferSpreadSheet
で、ググると
ttps://msdn.microsoft.com/ja-jp/library/office/Ff844793.aspx
なるページが出てきまして、そこに・・・
「インポートする際にいちいちエクセルで開いておく必要」
なんて書いてありませんでしたよ?

388 :デフォルトの名無しさん:2015/09/11(金) 00:19:59.73 ID:8grThG6x.net
>>386
SQL は長くなるけどパフォーマンス気にしてるなら INSERT VALUES 試してみれば?
多少は早くなるかもよ

389 :386:2015/09/11(金) 19:59:14.96 ID:pqg3O3xw.net
>>388
SQLがなんとか分かってきたので、今度やってみたいと思います。
ありがとうございました。

390 :デフォルトの名無しさん:2015/09/11(金) 21:45:17.29 ID:HscreZA4.net
>>389
TransferSpreadSheetsもう少しがんばれ。
簡単で早いと思うよ。
387さんも言ってるけどEXCEL開く必要は無い。何ならEXCELがインストールされて無くてもインポートやリンクが可能なはず。

391 :デフォルトの名無しさん:2015/09/27(日) 15:21:36.68 ID:Az8/vHuw.net
質問させてください。
コマンドボタンをクリックしたら、フォーム上の任意の位置にコンボボックスを新規作成させたいんですが、こんな事出来ますか?

392 :デフォルトの名無しさん:2015/09/27(日) 15:37:46.84 ID:nsZcbsgt.net
似たようなことしたかったときはメニューで代用したな

393 :デフォルトの名無しさん:2015/09/27(日) 15:41:04.97 ID:Az8/vHuw.net
>>392
詳しく

394 :デフォルトの名無しさん:2015/09/27(日) 15:41:50.47 ID:nsZcbsgt.net
右クリックでコンテキストのpopupメニューだったかな

395 :デフォルトの名無しさん:2015/09/27(日) 15:55:30.30 ID:Az8/vHuw.net
>>394
ありがとう
けど、求めてる者と違う感じです…

396 :デフォルトの名無しさん:2015/09/27(日) 15:59:22.69 ID:uZJD7NWm.net
ACCESSでフォームに直接新規で追加するのは難しい
非表示にしといてボタンクリックで表示させればいいんじゃないか

397 :デフォルトの名無しさん:2015/09/27(日) 18:24:32.94 ID:sF3uHAKT.net
やぱ難しいですか…
必要に応じて、数に上限定めずコンボボックスを増やしたいので、表示/非表示の方法は望ましくないんです…

仮に無理なら…
質問を変えて、1フォーム中にコンボボックスはいくつまで設置出来ますか?
↑ググれば出そうですが、ついで質問ですいません。

398 :デフォルトの名無しさん:2015/09/27(日) 19:09:24.48 ID:nTKThYNU.net
好きなだけ作ったらええねん

399 :デフォルトの名無しさん:2015/09/27(日) 19:18:33.43 ID:sF3uHAKT.net
むむぅ…

違う方法を模索してみます。

400 :デフォルトの名無しさん:2015/09/27(日) 19:30:00.48 ID:uZJD7NWm.net
じゃあフォームかサブフォームで帳票フォームにして詳細セクションにコンボ配置すればいいんじゃね
それ以外で不定数のコンボ欲しいとか言うなら設計がおかしすぎる

401 :デフォルトの名無しさん:2015/09/27(日) 21:13:46.60 ID:sF3uHAKT.net
帳票フォームにコンボボックス設置したら、そこで変更した内容が全部のコンボボックスに反映されるじゃん?それは困る

402 :デフォルトの名無しさん:2015/09/27(日) 22:14:17.55 ID:uZJD7NWm.net
ちょっと言ってる意味が分からない
あるレコードのコンボボックスの値が、他のレコードの値に影響すると?

403 :デフォルトの名無しさん:2015/09/27(日) 23:58:41.76 ID:Wa2IEO89.net
最初の構想としては
データが存在するフィールドにコンボボックスを表示させて、それぞれに別々のデータを入れて、新しいテーブルを生成したかった。

説明下手ですいません。

404 :デフォルトの名無しさん:2015/09/28(月) 10:36:51.52 ID:0RjOK4Zp.net
設計がおかしい
もしくは
Accessを使うべきではない

405 :391:2015/09/28(月) 10:50:56.86 ID:08kJukTg.net
設計し直します

406 :デフォルトの名無しさん:2015/09/28(月) 11:18:27.64 ID:65OblfGI.net
>>405
最終的な目的というか、なにをするためにこういった機能が欲しいのか
わからない。

>データが存在するフィールドにコンボボックスを表示させて、
ここまでは何となくわかる。
フィールドのルックアップをコンボボックスにすることはできる。
ただ、あるフィールドをこのレコードはテキストボックス、
そのレコードではコンボボックスってのはできない。
どっちも似たようなものだけどねw

>それぞれに別々のデータを入れて、新しいテーブルを生成したかった。
これがわからない。それぞれにってなんぞ?
フィールドにデータが入力された、そのテーブルのコピーって。。。作れるよね?

407 :391:2015/09/28(月) 20:06:23.90 ID:cvdri0js.net
ホント説明下手で申し訳ない

写真を付けてみた

・作業用テーブルAで帳票フォーム作る
・(出来ない所その1)フィールド上にデータがあるレコードにだけコンボボックスを表示させたい。
・(出来ない所その2)コンボボックスにデータを入力すると、他レコードにも同内容が入力される。←違うデータを入れたい

http://i.imgur.com/hdHud4y.jpg
http://i.imgur.com/KDmSreu.jpg

408 :デフォルトの名無しさん:2015/09/28(月) 21:48:54.09 ID:hW3kfusx.net
両方無理だね。

409 :デフォルトの名無しさん:2015/09/28(月) 21:53:23.92 ID:65OblfGI.net
>>407
いろいろ試したけど、コンボボックスのvisibleのプロパティを
帳票フォームの詳細のpaintイベントで操作できないので無理かなと。
背景色は変えられるみたいだから、コンボボックス全部並べて
背景色で区別できるようにするくらいしかできないかも。

書かれている通りの物が欲しいのであれば、.Netで作るしかないかなぁと。

410 :391:2015/09/28(月) 22:16:45.56 ID:XnIORDmB.net
やぱ無理ですよね
諦めて違う方法を考えます

411 :デフォルトの名無しさん:2015/09/29(火) 03:32:01.48 ID:FcuCREbJ.net
コンボボックスには何を表示/入力させたいんだ?
すくなくとも その2 はできるはずだと思うが

412 :デフォルトの名無しさん:2015/09/29(火) 03:32:38.44 ID:FcuCREbJ.net
コンボボックスには何を表示/入力させたいんだ?
すくなくとも その2 はできるはずだと思うが

413 :デフォルトの名無しさん:2015/09/29(火) 12:52:55.08 ID:12O/9Fge.net
ひとつのフォームにひとつのコンボボックスのフォームをフィールド分作って
OpenしたりCloseしたりすればいいんじゃない?
フォームの表示位置は指定できるんだし、作り込めばカッコよくなりそう(俺はやらないけど)

414 :デフォルトの名無しさん:2015/10/07(水) 12:00:19.12 ID:qdqRCjiZ.net
受ける会社大丈夫?
下記の条件が全て当てはまる会社にご注意下さい。

・IT系 in tokyo
・「社名 労基」でググると過去の2chスレが出てくる
・転職会議で2.5点

415 :391:2015/10/09(金) 20:00:26.30 ID:7kbTW2jS.net
結構前に質問した者だけど
設計変更して、無事にアプリが完成しました
色々アドバイスくれた人サンキューでした

416 :デフォルトの名無しさん:2015/10/10(土) 08:45:04.70 ID:7MsZxkaP.net
>>415
わからんけど、良かったね

417 :デフォルトの名無しさん:2015/10/10(土) 12:55:30.31 ID:/egW/Cb1.net
事後報告なんて珍しい

418 :デフォルトの名無しさん:2015/10/11(日) 15:34:31.54 ID:hlB+t7r4.net
質問です

現在Accessでチェックシートを作成しています。
内容は以下の通りです。

・目的:接客の際の必須項目の聞き取り漏れ、説明漏れを防ぐ

・仕様の概要:必須項目の各チェックボックスにチェックが入っていなければ各チェックボックスの背景を赤塗り
チェックが入っていれば緑塗り
注意が必要な組み合わせにチェックをした際に警告メッセージを出す等の、相関チェックを導入
フォームで入力した値はテーブルに格納。
対応1件につき、1レコード。

・環境:win7 access2010


上記仕様のチェックシートをAccessのフォームで作成していますが、
別のレコードに移動するとチェックボックスの色が
画面遷移前のレコードの色のままになってしまいます。
レコードを移動する度に、移動先のフィールドの値に
適した色に変えたいと思っています。

自身の考えでは、レコード移動をする度に、移動後のレコードの
チェックボックスの値を取得。
値に適した色に変更と考えていますが
Access標準装備の機能等で、
もっとスマートな方法があるのではないかと思ったので、ここに質問に来ました

皆様のお知恵をお貸しください
どうかよろしくお願い致します

419 :デフォルトの名無しさん:2015/10/11(日) 15:52:31.22 ID:K+nxBSBI.net
条件付き書式って機能があるけど、2007で試したら、チェックボックスには適用できないっぽいな

>別のレコードに移動するとチェックボックスの色が
>画面遷移前のレコードの色のままになってしまいます
今どうやってやってるんだ?

420 :デフォルトの名無しさん:2015/10/11(日) 18:00:58.67 ID:hlB+t7r4.net
>>419
今は下記のようにコントロールの背景色を変えています

Checkboxの初期背景色はコントロールのプロパティで赤を選択しています

private sub Checkbox1_Click()
If Checkbox.Value = True then
Checkbox1.Backcolor = 緑
Else
Checkbox1.Backcolor = 赤
End If
End Sub

421 :デフォルトの名無しさん:2015/10/11(日) 20:33:04.19 ID:K+nxBSBI.net
>>420
基本的には同じ事をレコード移動時にやるだけだな

ところで2007のCheckboxにはBackcolorとか無いっぽいけど、2010じゃあるのか

422 :デフォルトの名無しさん:2015/10/11(日) 20:57:15.41 ID:0pbjHxf6.net
>>421
でもこれだとレコード移動時に、反映されないんですよね
1.リアルタイムで色を変えるコード
2.レコード移動時に色を変えるコード
2倍のコーディングが必要になる点がスマートじゃないと思ってます

今更ですが「全相関チェック(警告メッセージ含む) & 全チェックボックスの色変更」の
判定を行うサブルーチンを1つ作り、
「レコード移動時」「チェックボックスのチェック時」のイベントで
都度サブルーチンを呼び出しすれば
結構スマートになるのかな?と思いました

ただ、チェックをする度にサブルーチンが実行され、
関係の無い箇所まで判定されてしまうと
チェックボックスの数次第で重くなる可能性がありますね
また、相関チェック(メッセージ有)に引っかかる組み合わせになっていると、
関係のないチェックをした際にも
メッセージが出てしまうので、操作性が損なわれてしまいますね

423 :デフォルトの名無しさん:2015/10/11(日) 21:10:04.23 ID:h/UXEdKw.net
>>421
条件付き書式はダメなのかと思い、一応調べてみたら下記サイトにあるように利用出来るかもしれません
条件付き書式で実装した方が
メンテナンス性も上がるので、一旦条件付き書式でやってみようと思います
http://hamachan.info/win8/access/and.html
http://m.chiebukuro.yahoo.co.jp/detail/q11134637911

Excelでは、条件付き書式を多用していたんですが、
今回は何故かその考えが完全に抜けてました
お教えくださり本当にありがとうございます

424 :デフォルトの名無しさん:2015/10/11(日) 21:20:09.79 ID:K+nxBSBI.net
入力不可能なテキストボックスをチェックボックスの下に配置して条件付き書式設定とか
まあ、やりようはあるんだが
条件付き書式は、コード見てもプロパティ見てもその設定が分からんからなぁ
個人的には好きではない

425 :デフォルトの名無しさん:2015/10/11(日) 22:42:29.78 ID:h/UXEdKw.net
>>424
仰る通り確かに、他者の事を考えると
条件付き書式だらけになってしまうってのも考える物ですね…
悩ましいです

426 :デフォルトの名無しさん:2015/10/11(日) 23:16:40.32 ID:OogdFVxU.net
男のくせに「悩ましい」とか使う奴の言動は一切信用しないことにしている
これっぱかしもだ 微塵もだ 毛一厘もだ  うじゃじゃけてるヒマあったら答え出せ
できるのか? できないのか? できないなら去れ できるなら結果出せ 以上

427 :デフォルトの名無しさん:2015/10/12(月) 00:54:54.91 ID:7l73laAr.net
>>426
>男のくせに

単純に疑問です。何を根拠にして男と判断したのでしょうか?

428 :デフォルトの名無しさん:2015/10/13(火) 21:07:29.45 ID:iGPs38vk.net
VBAじゃないんだが助けてくれ〜。Access を複数人で使用する時について質問させて下さい。

テストのために、Access(2010)でこういう簡単なシステムを作りました。

  バックエンド 2フィールド/レコードが数レコードだけあるテーブルが1つ
  フロントエンド リンクテーブルと、そのテーブルの全フィールドを表示するクエリ
          (クエリのレコードロックプロパティ:編集済みレコード)
  ※ 全 accdb ファイルについて、オプションから
   「共有モード」「編集済みレコード」レコードレベルでロックして開く」を指定済み

でさて、フロントエンドA・Bを開き、Aがレコードを編集する時に、
よく解らないきっかけでBのほうで複数レコードに渡ってロックされる事態になり
(これは全レコードの時もあるし、1行より多く全レコードより少ない時もあります)、
またよく解らないきっかけでその事態が解消されることがあるのに気づいたのですが、
この異常事態の原因は何で、対策はどうすればいいでしょうか?

検索しても手持ちの書籍でも解らずお手上げでして、
どなたかご助言を下さればありがたいです。

429 :デフォルトの名無しさん:2015/10/13(火) 22:09:39.22 ID:v0mnZW8d.net
>>428
それがわからないなら、諦めろ。
外注に出そうな。

430 :デフォルトの名無しさん:2015/10/14(水) 02:52:15.27 ID:EFTour7u.net
良くわからないきっかけとやらを特定する
エスパーを探す

お好きな方で

431 :デフォルトの名無しさん:2015/10/14(水) 06:55:27.52 ID:fbrLImlI.net
428ですが先輩の皆様非常に手厳しいですね

何とか自分で特定できました おじゃましました

432 :デフォルトの名無しさん:2015/10/14(水) 11:31:57.79 ID:EGTHNy+H.net
自分で解決できるなら質問しないでください
うざいだけです

433 :デフォルトの名無しさん:2015/10/14(水) 19:36:39.06 ID:Wlh7M+gV.net
解決した結果というか原因を書いておけば、後輩が喜ぶよ。

434 :デフォルトの名無しさん:2015/10/17(土) 08:19:31.95 ID:P+NFgFW2.net
Accessなんて俺以外は誰も使ってないよね。

435 :デフォルトの名無しさん:2015/10/17(土) 19:12:33.45 ID:ee0s4Mox.net
>>434
俺は使ってるぞ!
ちょっと癖はあるがAccess最強伝説は不滅さ!
ただし小さいシステムに限る。。。。

436 :デフォルトの名無しさん:2015/10/18(日) 06:40:13.96 ID:262pAAoP.net
MSDEとかSQL Serverと組み合わせれば少しはレベルが上がりますかね?

437 :デフォルトの名無しさん:2015/10/18(日) 07:25:07.68 ID:cUqtHutT.net
>>436
いまそこまでするならWebで使えるようなスキルを身につけてしまう事も考えちゃいますね。。。。phpとかいい感じに枯れてきてるよう思います

438 :デフォルトの名無しさん:2015/10/18(日) 11:01:28.83 ID:vJDQVwJW.net
access + django 試したら意外といけた

439 :デフォルトの名無しさん:2015/10/18(日) 16:38:41.44 ID:cUqtHutT.net
>>438
少しだけkwsk
Pythonのフレームワークだよね?

440 :デフォルトの名無しさん:2015/10/18(日) 17:07:54.47 ID:Vpke6UWK.net
今からweb連携て
php覚える前に俺のいろいろが枯れてるのを何とかしてくれ

441 :デフォルトの名無しさん:2015/10/18(日) 17:18:09.60 ID:81sora9Q.net
ウェブアプリよりネイティブアプリだよね

442 :デフォルトの名無しさん:2015/10/18(日) 18:00:30.34 ID:cUqtHutT.net
>>441
いやーWebでしょう。
限られた環境ならネイティブアプリでもいいんでしょうけど。。
どこまで広げるかによるけどね。
入力はネイティブ、閲覧はWebという感じに住み分けるのも
いいのかもしれない。

443 :デフォルトの名無しさん:2015/10/18(日) 18:19:24.53 ID:81sora9Q.net
>>442
>入力はネイティブ、閲覧はWeb

そうそう
それそれ

444 :デフォルトの名無しさん:2015/10/23(金) 20:11:11.99 ID:YF5Y/5+5.net
カラムの中で、空白の場合は、空白でない上のデータもってくるってクエリを作りたいのですが、どのようにすればできますか?
Excelでは可能なのですが、百万件以上のテーブルのためできません。

445 :デフォルトの名無しさん:2015/10/24(土) 04:28:16.14 ID:dOe1BR+K.net
>>444
原則としてRDBのテーブルの行に、上とか下とか順序はないんだが

頑張ればSQL(クエリ)だけで出来なくもないけど、簡単なVBAマクロ作って流せばいいんじゃね

446 :デフォルトの名無しさん:2015/10/24(土) 12:14:04.67 ID:niXzNvfm.net
ソート後の順序で真上のレコードっていう条件が必要だろう

447 :デフォルトの名無しさん:2015/10/24(土) 17:03:31.97 ID:XMDiNwuL.net
>>443
マイクロソフトさんこんな需要がありますよー
アクセスこれからも面倒見てね

448 :デフォルトの名無しさん:2015/10/24(土) 18:35:34.63 ID:niXzNvfm.net
FileMakerでも出来ること

449 :デフォルトの名無しさん:2015/10/24(土) 20:02:10.36 ID:pancXijC.net
>>447
MySQLに接続して閲覧側はウェブでAccess側は入出力側で実現。
でも、MSはAccessはいずれ亡くすと思うよ。年々需要が減ってる

450 :デフォルトの名無しさん:2015/10/24(土) 21:31:19.29 ID:XMDiNwuL.net
LightSwitchってその後どうなったのかな?

451 :デフォルトの名無しさん:2015/10/25(日) 21:29:15.26 ID:3h+48Nx8.net
>>450
殆ど消えたも同然の状態。

452 :デフォルトの名無しさん:2015/10/26(月) 20:56:01.66 ID:GrJVc3nW.net
フォームやレポートの作成が簡単で助かってるんだけど、Accessに匹敵するほどお手軽簡単な開発環境あるのですか?

453 :デフォルトの名無しさん:2015/10/27(火) 02:06:01.33 ID:P3tmhbiJ.net
ない

454 :デフォルトの名無しさん:2015/10/27(火) 06:08:45.26 ID:aDjshOL6.net
だから無くなると困るんだよなあ

455 :デフォルトの名無しさん:2015/10/27(火) 08:16:54.33 ID:O948v5f3.net
Filemakerとどっちがいいの
わりとまじで質問

456 :デフォルトの名無しさん:2015/10/27(火) 09:01:30.38 ID:NzV7E0Ep.net
どっちもどっちだろうな。
バックエンドにもよるだろうけど、いつも使ってる方とか得意な方で開発するだろ。
指定があるときはそれに従うだけだから比べなくていい。
FileMakerはiPadなんかで使えるっていうのがウリみたいだけど。

457 :デフォルトの名無しさん:2015/10/27(火) 22:44:31.91 ID:UL6Q2dpz.net
Accessのほうが情報は手に入れやすいんじゃない?

458 :デフォルトの名無しさん:2015/10/28(水) 18:34:43.87 ID:tdXqh+ol.net
それは言える

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

477 :デフォルトの名無しさん:2015/11/06(金) 09:46:24.95 ID:rpsHbqpr.net
union

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

491 :デフォルトの名無しさん:2015/11/07(土) 19:39:42.37 ID:Lam93S6q.net
>>487-488
>Jetデータベースエンジンとは、Microsoft社が開発したリレーショナルデータベースエンジン。Microsoft Access用に開発されたもので、現在ではWindowsに統合され、様々な製品から利用されている。
だそうですよ

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

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

494 :デフォルトの名無しさん: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

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

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

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

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

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

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

501 :デフォルトの名無しさん:2015/11/08(日) 18:18:56.29 ID:dBATCu8V.net
m9 pgr

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

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

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

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

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

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

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

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

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

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

511 :デフォルトの名無しさん:2015/11/12(木) 12:42:12.51 ID:tbcgbggA.net
>>504
ちょっと出来ない事があるとVBAに頼るのはよくない。
Officeの使い方をもっと勉強してからVBAに手を出すべきだよ。

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

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

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

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

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

レポートに出力

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

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

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

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

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

518 :デフォルトの名無しさん: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でフィルタ掛ければいいんでないの?

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

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

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

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

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

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

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

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

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

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

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

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

529 :524: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の部分だけをかいつまんで書くとこんな感じだけど、解放の仕方を教えてくれないか。
リムーバブルディスクにコピーしたファイルは開けるし削除もできるからロックされた感じじゃないんだよね。
安全なハードウェアの取り外しだけがうまくいかないんだよ。

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

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

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

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

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

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

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

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

536 :534:2015/12/11(金) 16:06:56.86 ID:UbN3V6OX.net
出来ました。

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

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

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

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

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

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

543 :デフォルトの名無しさん:2016/01/14(木) 21:12:26.51 ID:RIYdCmvc.net
テーブルにインポートするとたまに失敗する変なゴミデータが入ったエクセルファイルをVBAでテーブルに登録しようとしてます。1レコード100フィールドほどあるもので、addnewで登録すると100件で20秒ほど掛かってしまいます。
Insertでも23秒でした。
全部で10万件あるのですが、高速登録する方法ないでしょうか?

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

545 :デフォルトの名無しさん: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
この後でテーブル登録する

546 :デフォルトの名無しさん: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
などなど...

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

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

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

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

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

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

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

552 :デフォルトの名無しさん: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(

553 :デフォルトの名無しさん: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分を使ってみたのですが、上手く行きません。

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

554 :デフォルトの名無しさん:2016/01/21(木) 00:33:33.20 ID:eWUPCZWU.net
添付ファイルで複数値を持つフィールド ってのがよくわからん
そのフィールドのデータ型と
実際に内容をセットしてるコード出してみ

555 :デフォルトの名無しさん:2016/01/21(木) 07:45:42.44 ID:7TL6zMKQ.net
>>554
お返事ありがとうございます。

TABLEAのフィールド"写真"にデータをセットするのはフォーム上で行っております。

MsgBox TypeName(.Fields("写真")) で確認をしてみたところ、
Field2 オブジェクト (DAO)
ttps://msdn.microsoft.com/ja-jp/library/office/ff194326.aspx
と返ってきました。

これで伝わりますでしょうか?

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

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

ttps://msdn.microsoft.com/ja-jp/library/office/ff194326.aspx
ここにサンプルが有るから頑張って

558 :デフォルトの名無しさん:2016/01/21(木) 15:33:43.41 ID:zpe1QHZ3.net
これはひどい

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

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

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

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

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

564 :553:2016/01/22(金) 16:35:45.14 ID:FxZxO26V.net
皆様、お返事ありがとうございます。
当該フィールドは「添付ファイル」型です。
「添付ファイル」型の写真フィールドは、下位フィールド?として写真.FileData / 写真.FileName / 写真.FileTypeを持っているため、写真.FileNameの有無でNULLか否かを確認しようとしていました。

>>557 さんと >>563 さんのお陰でNULLか否かはRS_写真のEOFを見れば良いだけと気づき、
何とかやりたい操作ができそうです。

この度はご指摘戴き、誠にありがとうございました。

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

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

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

568 :デフォルトの名無しさん:2016/01/28(木) 09:25:27.95 ID:xQdz3S4b.net
>>567
連続出力するなら
レコードセット開いてレコード毎に書き出しループ

連続出力しないなら
フォーム上の値を参照するパラメータクエリ作って
DoCmd.TransferTextで書き出し

569 :デフォルトの名無しさん:2016/02/01(月) 21:40:46.53 ID:uqBwC27M.net
ACCESS VBAでoracleのデータを読み書きする場合は
リンクテーブルを作ってやるのが普通でしょうか?
それともリンクせずに直接ORACLEにアクセスするのがよいでしょうか?

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

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

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

Private Const START_CELL =

573 :デフォルトの名無しさん:2016/02/02(火) 10:28:02.77 ID: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

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

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

576 :デフォルトの名無しさん:2016/02/02(火) 15:27:20.80 ID:chGMw9p3.net
これはひどい

577 :デフォルトの名無しさん:2016/02/02(火) 17:32:28.26 ID:nmsl1byO.net
>>575
質問者の質問内容は>>569ですよ〜

578 :デフォルトの名無しさん:2016/02/02(火) 19:38:08.47 ID:ml14fhOB.net
>>577
何が言いたいのかわからん

リンクテーブルかそれ以外でのアクセスかって質問に対して
ACCCESSならリンクテーブル一択だろ、見たいな事を言うから
そうじゃない状況もあるだろって言ってるんだが

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

580 :デフォルトの名無しさん:2016/02/03(水) 16:11:02.04 ID:/VnwDmrp.net
両成敗

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

582 :デフォルトの名無しさん:2016/02/04(木) 15:29:20.74 ID:oKzBZVFr.net
>>581
うん

583 :デフォルトの名無しさん:2016/02/07(日) 19:26:30.89 ID:PcQYM9su.net
Accessでエクセルファイル読もうと思ってExcelオブジェクトを作成した時、
既にエクセルを立ち上げているとマクロの挙動がおかしくなったり、
あるいは後からエクセルを立ち上げようとするとマクロが終了するまで画面が白いままなのですが、
これを避けてAccess側のみで扱えるエクセルオブジェクトを作ったり、あるいはエクセルと併用したりという事は出来ないでしょうか?

スプレッドシートのインポートは暗号化の影響で上手くいかないので、エクセルオブジェクトを通す必要があります。

584 :デフォルトの名無しさん:2016/02/08(月) 15:38:17.85 ID:qbvivMLd.net
>>583
できるよ

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

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

587 :デフォルトの名無しさん:2016/02/10(水) 09:07:48.34 ID:FkM1RfeE.net
>>586
行列入替えがしたいっての?それ、データベースのルールに反してる
わけだが。

クロス集計クエリの場合にはデータ元がきちんとクロス集計できる形に
なっていれば、できないということはない。

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

589 :デフォルトの名無しさん:2016/02/22(月) 10:47:20.99 ID:4/RFA0DI.net
すまん
誤爆った

590 :デフォルトの名無しさん:2016/02/22(月) 12:20:31.39 ID:Y1bHL8fN.net
>>588
それな

591 :デフォルトの名無しさん:2016/02/22(月) 12:21:37.50 ID:GAqrdc9h.net
>>588
あえて、経験値にした辺りに謙虚さがあるな

俺だったら、最初からスキルボックス(中身はランダム)みたいな課金する。

592 :デフォルトの名無しさん:2016/02/22(月) 18:37:53.19 ID:QLpZ1xcH.net
うざ

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

594 :デフォルトの名無しさん:2016/02/25(木) 10:52:35.16 ID:xnX4JkuY.net
できますん

595 :デフォルトの名無しさん:2016/02/25(木) 13:16:09.91 ID:W1s9bb7v.net
>>593
Googleスプレッドシートは簡単に関数でソレが実現できます。

ちなみに、Accessでは「貼り付ける」行為は出来なくはないです。ただ、オートメーションでやる
ならそういうことになりますが、普通はExcel上でピボットを作成スべきでしょう。

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

597 :デフォルトの名無しさん:2016/02/26(金) 15:13:34.90 ID:VQGl6zaq.net
VBAで

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

599 :デフォルトの名無しさん:2016/03/04(金) 22:35:15.49 ID:KUnf3VuC.net
質問 Access2010
突然、フォームのデータシートビューで列を入れ替えてもその状態が保存されないようになってしまいました。
いろいろと原因を調べてみるとOpenやLoadイベントでフィルター設定を行うとそんなトラブルが起こってしまうようなのです。

Private Sub Form_Open(Cancel As Integer)
 Me.Filter = "ID>3" '例
 Me.FilterOn = True
End Sub

皆さんの所でも再現出来ますでしょうか
ちなみに自宅のAccess2002ではこういった異常な動作は起こりませんでした
またこれって有名なバグとかなんでしょうか

600 :デフォルトの名無しさん:2016/03/24(木) 22:15:00.25 ID:aSgI1iJJ.net
access 2010
windows7

DoCmd.OutputTo acReport,

601 :デフォルトの名無しさん:2016/03/24(木) 22:16:25.19 ID:aSgI1iJJ.net
access 2010
windows7

DoCmd.OutputTo acReport, "hoge_table", acFormatXLS, "C:\hoge.xls"

レポートファイルをxlsへ出力するときに
「実行時エラー 2587 出力が完了できません」が
出てきてしまいます。

実行時エラー2587を検索しても情報が出てこない為、
困っています。

どなたか何が原因かわかりますでしょうか?
先月までは機能していたんですが、
今月から急に上記エラーが出てくるようになりました。

602 :デフォルトの名無しさん:2016/03/25(金) 13:31:48.84 ID:ctOehyRA.net
プリンタが変わった レポートの書式が変わった(文字コード系)
再インストールで復帰した  というようなresが 英語のフォーラムだけど

手動でエクスポートした場合も同じエラーかどうか
ん?レポートファイルをxlsへ? "hoge_table" テーブルをxlsへの間違い?
テーブルをcsv出力してxlsなら?   とかいろいろ

603 :デフォルトの名無しさん:2016/03/25(金) 16:30:30.08 ID:e4gujGfG.net
データが増えてリソース不足、ってのが一番考えられる理由だけど
何のリソースかはわからんが

もうちょっと詳細なエラー内容ないのかね

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

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

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

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

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

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

610 :デフォルトの名無しさん:2016/07/12(火) 06:40:44.26 ID:o2wIdsaQ.net
ExcelのシートからADOでデータ取り込みをやろうとしてます
ルックアップで別のテーブルを参照しているフィールドを持つテーブルにレコードを追加したいのですが
具体的にはExcelシートには都道府県名が文字列で入っていて
Accessのテーブルは都道府県名は別テーブルを参照して数値で持っています

色々試してみたのですが 追加先テーブルの数値型のフィールドには数値しか入力できず
参照している先のテーブルの"東京都"などの文字列データはUpdateでエラーが出ます
(あたりまえでしょうけど)

こういった参照先データで入力したい場合 なにか良い方法があるのでしょうか?

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

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

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

614 :デフォルトの名無しさん:2016/08/24(水) 19:34:34.65 ID:3q4Jyrt7.net
SQLでテキストデータを取り込む時、ヘッダー行を任意の位置で指定する事は出来ますか?
読み込もうとしているcsvファイルのヘッダー行が3行目なので、この位置から読み込ませたいのです。

色々調べたんですが、外部データベースを取り込む際のキーワードがなかなか出てこず苦戦しています。

615 :デフォルトの名無しさん:2016/08/24(水) 21:33:54.83 ID:XY92uhDq.net
開始行を含めるか含めないかしかなかった様に思う。
取り込んでしまってからヘッダー行を消すSQL実行したらはやいかも。

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

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

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

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

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

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

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

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

624 :デフォルトの名無しさん:2016/09/30(金) 13:59:26.62 ID:4mQfWuIk.net
いいかげんスレチ

625 :デフォルトの名無しさん:2016/10/01(土) 18:16:06.96 ID:94YBKalt.net
すみませんが教えて下さい。

Access2010でフォームにWebブラウザコントロールを張り、
Me![ScrollInfo].Navigate

626 :デフォルトの名無しさん:2016/10/01(土) 18:24:50.88 ID:94YBKalt.net
すみませんが教えて下さい。

Access2010でフォームにWebブラウザコントロールを張り、
Me![ScrollInfo].Navigate で正常にページが表示されています。

そのフォームを右クリックでデザインビューに切り替えると以下のエラーが出来ます。

StatusTextChange でエラーが発生しました(以下略)

ちなみに×ボタンで普通に閉じるとこのエラーは発生しません。
Access2016でも同様でした。

ご存知の方がいらっしゃいましたらお願い致します。 

627 :デフォルトの名無しさん:2016/11/10(木) 12:17:09.05 ID:MJMdCBmm.net
sendobjectでレポートをPDFで添付して送ろうとすると
添付されたファイル名が・.pdfになるのは仕様ですかね?

ACCESSとOutlookは2013です
ただAccessのファイルはmdb形式

628 :デフォルトの名無しさん:2016/11/10(木) 12:51:09.43 ID:dxAJlx69.net
どうしたいの?

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

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

631 :デフォルトの名無しさん:2016/11/10(木) 14:01:21.25 ID:lT3NS9hL.net
通じないか…すまん

Docmd.Sendobjectを使ってレポートをPDFに変換してメール送信したい

実行はできているが、変換されてメールに添付されたファイル名が・.pdfになってしまう。
これがなぜ・になるか知りたい。
レポートのオブジェクト名は・ではない。
日本語名がNGなのか?

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

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

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

635 :デフォルトの名無しさん:2016/12/28(水) 11:38:08.54 ID:qa9jiDer.net
?Eval("'山ー田' Like '*山田*'")
-1

何で?

Win7x64+Acs2010

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

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

638 :デフォルトの名無しさん:2017/01/01(日) 20:32:48.66 ID:F1PmU62+.net
>>635
Evalの引数が単なる文字列として認識されてるからかも

?Eval("山ー田" Like "*山田*")

だと期待する結果になる

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

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

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

642 :デフォルトの名無しさん:2017/01/04(水) 15:01:47.06 ID:rtXdgiQY.net
利用環境
access2010
Windows7

上記環境で同時接続400人程度のファイルを作成しようとしています
管理者2〜3人が100〜1000件程度のレコードを編集しながら
400人程度が編集したレコードを参照。参照後に自動で既読フラグを
access内のテーブルに入力する仕組みです

上記イメージで利用する場合、400人が同時に既読情報を
DBに対して入力することになります。
(実際は入力するタイミングがずれるので同時編集は
多くて100人程度になりそうです)
Accessは負荷に耐えきれるのでしょうか?
400人の既読情報を40個のテーブルに分割して
リンクテーブルで負荷を分散させれば実用範囲になるのでしょうか?

社内セキュリティの制約でAccessしか利用が出来ない状態なので
他のツールを使用することは出来ないです

お手数をおかけしますが、お分かりの方がいらっしゃれば
ご教授をお願い致します

643 :デフォルトの名無しさん:2017/01/04(水) 15:08:19.02 ID:XZra0ySO.net
全員が同じaccess開くならやめとけ

>400人の既読情報を40個のテーブルに分割して
>リンクテーブルで負荷を分散させれば実用範囲になるのでしょうか?

そこまで分けなくても
テーブル専用mdbと参照専用mdbに分けて
参照専用mdbを400人全員ローカルに置く
参照専用mdbからテーブル専用mdbにリンクするだけでいいんじゃね

644 :デフォルトの名無しさん:2017/01/04(水) 15:25:42.45 ID:JR/sdM0U.net
>>642
そこまで社内セキュリティにうるさい会社で勝手にやっていい範囲のシステムだとも思えんけど

>Windows7
この時点で、ライセンス違反の可能性が非常に高い
おそらく同時接続制限もかかる

フロントエンドはアクセスでもいいけど、どう考えてもバックエンドにまともなDB入れるべき
てか利用者400人のシステムで「同時」書き込み100とかなかなか行かないけどな
たぶんライセンス無視すれば>>643のやり方で行けるだろ
ほんとに同時書き込みが100あるならACCDBみたいなファイル共有型のDBじゃ無謀

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

400人で参照専用mdbを開くということは無謀でしょうか?


>>644
返信ありがとうございます
ライセンス違反の可能性は考慮していませんでした
調べて見ます
未読状態のものは赤表示にしようと考えている為、
テーブルから未読/既読状態のデータを読み取ることもあります
開いた瞬間に既読フラグを付けるだけのシンプルな入力なので
確かにおっしゃる通り100人で同時に書き込みがあることは
ないですね。恐らく多くて20〜30だと推測します

参照専用mdbからテーブル専用mdbに入出力する場合は
「テーブルリンク機能を使う」ということでしょうか?


仕事中なので返信が遅くなってしまいます
申し訳ありません

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

647 :デフォルトの名無しさん:2017/01/04(水) 16:53:55.47 ID:JR/sdM0U.net
>>646
利用者各々が自分の既読が分かれば良いだけならそれで良いけど
管理者が誰が未読か知りたいとか既読者の一覧出せとかいう要件があると
結局既読フラグは集中管理する方が楽

まあどっちにしてもプログラム用のMDBは各ユーザに配るべきだが

648 :デフォルトの名無しさん:2017/01/04(水) 16:58:07.53 ID:ZppiaYb0.net
accessでやる案件じゃないな

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

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


> アクセスのDBは基本的にはファイル共有で動作してる

ファイル共有で動作している事で、同時に複数人で
mdbを開くと負荷が大きくなるということでしょうか?

> 共有サーバどうする気か知らんが、その共有サーバで実際に400人でファイル同時オープンしてみ

この部分が最大のネックで、テストが出来ない環境なんです

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

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

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

654 :デフォルトの名無しさん:2017/01/05(木) 13:00:18.18 ID:UOU5yV0Y.net
>>653
ありがとうございます
同時にたくさんのユーザで開くことが現実的でないのであれば
下記方法を検討してみようと思います。

・共有サーバーに起動用mdbを1個。参照用mdbを40個。テーブル専用mdbを7個設置。
・全ユーザーは起動用mdbからIDによって振り分けられた参照用mdbに移動。
(400人に対して参照用mdb40個なので、
10人単位で参照用mdbを割り当てる)
・各参照用mdbからテーブル専用mdbに入出力を行う
(既読フラグの入力。既読状態を読み取って参照用mdbの
フォームに既読の表示をする)

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

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

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

658 :デフォルトの名無しさん:2017/01/05(木) 14:34:29.15 ID:2uA+A+xC.net
>Accessで扱うには難しい案件だという事は分かりました

論点はそこじゃないよ

659 :デフォルトの名無しさん:2017/01/05(木) 14:57:02.77 ID:YjTG1plI.net
しらんがな

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

661 :デフォルトの名無しさん:2017/01/05(木) 16:44:07.63 ID:1cxa7M6H.net
>>654
色々アイデアを出されておりますが400人が接続する先は「テーブル専用mdb」ですから
仮に動作したとしてもクエリ1つ投げて戻ってくるのに数十秒かかる、という事態も想定されますよ

どうしてもAccessで開発するのであれば
バックエンドをSQL Serverなどにして「参照用mdb」を各クライアントに配布する形になります

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

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

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

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

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

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

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

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

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

671 :デフォルトの名無しさん:2017/02/16(木) 12:08:53.08 ID:1VBkG9E6.net
参照しろ

672 :デフォルトの名無しさん:2017/02/16(木) 12:33:12.55 ID:l4cugFFN.net
回答ありがとうございます。

いちおう参照設定してのテストも行ってますが、結果は同じでした。

なので困ってます。(;ω;)


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

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

674 :デフォルトの名無しさん:2017/02/16(木) 13:59:57.08 ID:0BcpOJQi.net
>>672
自作関数については分かりませんが

> ちなみに参照設定しないのは、AccessでExcelを扱う際にやっかいとなる、
> 残プロセスを残さないためです。
参照設定(事前バインディング)はコンパイル最適化とコーディングをしやすくするのが主な目的です
それが原因でプロセスが残る事は考えにくいです(そんな現象は見た事がない)
定番の「Excelオブジェクトを解放しきれていない」が原因ですよ

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

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

677 :デフォルトの名無しさん:2017/02/16(木) 17:58:12.26 ID:6ZvAKcv7.net
>>674

その通りなんですが…
参照設定しないのが一番簡単なので。。

みなさまありがとうございました。


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

678 :デフォルトの名無しさん:2017/03/14(火) 15:44:05.81 ID:xSphHjM7.net
プロシージャ内でSQLを使用する際に、

SELECT
[テーブル名].[フィールド名]…

みたいな感じで、テーブルオブジェクト全てにカギ括弧をつけてるんですが、

みなさんはどうしてますか?

679 :デフォルトの名無しさん:2017/03/14(火) 15:52:48.60 ID:vbV/Jpv3.net
付けてるよ

680 :デフォルトの名無しさん:2017/03/14(火) 18:46:12.84 ID:hwBjOTV4.net
あざーっす!

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

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

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

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

685 :デフォルトの名無しさん:2017/03/23(木) 10:28:42.05 ID:5Vz0tz9C.net
お疲れさまです。

DoCmd.RunSQL で、select結果を表示する方法ってあります?

686 :デフォルトの名無しさん:2017/03/23(木) 11:35:43.51 ID:AyyVp0Pm.net
あります

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

688 :デフォルトの名無しさん:2017/03/23(木) 12:46:28.00 ID:AyyVp0Pm.net
948 デフォルトの名無しさん sage 2017/03/22(水) 18:27:50.62 vhfzvoEm

少し調べればすぐ分かることなんだから
聞く前にまず自分で調べなよ

949 デフォルトの名無しさん sage 2017/03/22(水) 20:02:01.65 pQEBF+SX

>>947
初心者のくせに欲張りだね君は

689 :デフォルトの名無しさん:2017/03/23(木) 14:40:42.73 ID:BfWircGx.net
999 名前:本当にあった怖い名無し@無断転載は禁止 :2017/03/23(木) 04:44:44.44 ID:7MjKM4Gx0

てめえか?
てめえかよ!え?
その腐った根性!
https://youtu.be/Dd9Xiqoehsc

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

691 :デフォルトの名無しさん:2017/04/17(月) 10:45:51.14 ID: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」が自動で閉じられているのでしょうか?
またどうすれば閉じないように処理をすることが出来るのでしょうか?

恐れ入りますが、ご教示願います

692 :デフォルトの名無しさん:2017/04/17(月) 12:24:07.44 ID:BKaS1p5r.net
フロントエンドは各クライアントに置く
各クライアントにはRuntimeをインスコ
その状況なら、いろいろ解説しているサイトがごまんと転がってる

鯖でアプリケーションサーバー機能を持たせてないなら
鯖上のアプリを起動しようとする意図が間違っている
スターターは何だか判らん

693 :デフォルトの名無しさん:2017/04/17(月) 13:58:30.12 ID:43/Py1Cq.net
すみません、下記前提が抜けていました

・クライアント側はローカルへのデータ保存不可
・クライアント端末にruntimeのインストール不可

スターターはクライアントが直接フロントエンドファイルを開かない(占有)しないようにする為のファイルです

accessが閉じられてしまう原因が分かりました

Sub test()
Dim acApp As Access.Application
Dim strDBPath As String
strDBPath = "hogehoge\db1.MDB"
Set acApp = New Access.Application
acApp.OpenCurrentDatabase strDBPath
End Sub

プロシージャを抜けるとローカル変数の
acAppが無効化されてしまう為に
accessが閉じられていました
グローバル変数としてacAppを宣言することによって
閉じられてしまう事は回避出来たのですが
同じプロシージャ内に「スターターを閉じる」命令を
すると、コピーしたファイルまで閉じてしまいます

理想はスターターを起動後、
1.ファイルをコピー
2.コピーしたファイルを開く
3.スターターを閉じる
を全て実行出来るようにしたいのですが、accessVBAでは
出来ないのでしょうか?

694 :デフォルトの名無しさん:2017/04/17(月) 14:35:23.27 ID:AilOqA4r.net
>>693
環境とやりたい事が全く分からん
>・クライアント端末にruntimeのインストール不可
当然ACCESSそのものもインストール不可なんだろうな
その状態で、スターターやコピーしたaccdbは「誰が」「開く」んだ

ふつうaccdbを開くというのはACCESS(ランタイム含む)で開くことだぞ

クライアントにACCESS(ランタイム)インストール不可
ローカル(クライアント)にACCDBコピー不可
の環境で、ACCESSで作ったアプリ使おうとか俺なら無理って言って断るけど

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

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

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

698 :デフォルトの名無しさん:2017/04/17(月) 22:03:56.60 ID:BKaS1p5r.net
もうリモートでやれよ 後々のメンテ考えてもリモートのが百万倍楽だろ
何十時間費やしてご自慢の構成組み上げても、余人に理解できなきゃ
ポンツコアプリに堕するだけ お前亡き後後輩がハゲあがるわ

今日びのクライアントマシンならストレスも少なくて済む性能持ってるし
バッチは置けないけど鯖上でVBAならなんでもござれ ってのもな
シンクライアントなら尚更リモートで発想してやるのが環境にやさしいってもんだ

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

700 :デフォルトの名無しさん:2017/04/18(火) 18:05:35.01 ID:UkP+KrtI.net
業務委託契約として顧客に準備された制限の多い
環境下で業務をしています共有サーバも特殊である為、
理解出来ないような仕様が多いです

「別のaccess起動」はshell関数で対応する事で
解決出来ました
たくさんのご意見どうもありがとうございました

701 :デフォルトの名無しさん:2017/04/18(火) 18:15:43.89 ID:Uw8XacGP.net
はよ逃げ

702 :デフォルトの名無しさん:2017/04/19(水) 12:26:18.06 ID:j6KP6NRK.net
クライアントにACCESSインストール不可なのに
どこでどうやって「別のaccess起動」を解決できたのかすごく気になる

特殊なサーバってメタフレームとかじゃないだろうな

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

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

705 :デフォルトの名無しさん:2017/04/21(金) 11:31:18.08 ID:cjUCDLpJ.net
accessVBAでファイルコピーをするのですが、

テーブルにある数値をコピー先のファイル名としてファイルコピーしたいのですが、
どうすればいいでしょうか?
テーブルには1フィールド1件のレコードしかないようにしています。

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

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

708 :デフォルトの名無しさん:2017/05/09(火) 22:38:58.26 ID:ho5latp+.net
ひどく難しい質問だが :
 レポートのソースをクエリにしている、という意味なのか
   だとするとその一文は無用なのだが

 レポート上のテキストボックスにクエリのSQL文を埋め込み(貼り付け)
 たいんだが、それぞれ文字数が変わるのでそのテキストボックスの
 フィールド幅とかフォントを自在に変えたいのか

下の意味だとしたら cf. http://www.newsbit.org/vol16/ 幅は変わらないけれども
Verが2010以上なら cl. http://mukkumuku.blogspot.jp/2013/02/access-2010-2013-anchor-property-2.html とか

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

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

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

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

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

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

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

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

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

需要ありますかね。

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

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

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

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

719 :デフォルトの名無しさん:2017/05/16(火) 01:19:24.97 ID:CV++bHOB.net
Access2000 Win7

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

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

安倍
中曽根
福田
小泉
麻生

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

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

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

721 :デフォルトの名無しさん:2017/05/16(火) 08:04:15.30 ID:VdvmUVsR.net
私なら
入力した名前をテーブルに追加していき
リストボックスの値集合ソースにそのテーブルを指定して表示させ
Wクリックで入力させたいテキストボックス(?)に転記させます
※コンボじゃなくリストにしたのは好みです

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

723 :デフォルトの名無しさん:2017/05/16(火) 12:19:41.22 ID:14hiXRCy.net
strSQLで。

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

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

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

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

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

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

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

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

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

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

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

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

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

732 :718:2017/05/18(木) 02:38:44.45 ID:v5KhOq09.net
>>731
ありがとう

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

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

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

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

737 :デフォルトの名無しさん:2017/06/07(水) 22:15:49.46 ID:JlTkUU5d.net
>>736
フォームに配置するオブジェクトのひとつ。他にコンボボックスとかリストボックス、コマンドボタンなんかがあります。

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

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

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

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

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

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

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

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

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

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

747 :デフォルトの名無しさん:2017/06/13(火) 15:22:33.36 ID:mycfBP+w.net
いない

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

767 :デフォルトの名無しさん:2017/07/04(火) 16:03:28.67 ID:ce7knrBK.net
Accessの神々よ、御教えを!

Accessでは、CHECK 句が使えないようですが、
カラム数が多いため、
いちいちプロパティから入力規則を設定するのは骨が折れます。

SQL で一括設定する方法をご伝授くださいませ〜

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

769 :デフォルトの名無しさん:2017/07/05(水) 02:09:17.79 ID:EckUEWaI.net
>>766
なるほどさんくす

770 :デフォルトの名無しさん:2017/07/05(水) 10:03:04.42 ID:Qpg00Afa.net
view

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

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

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

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

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

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

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

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

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

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

780 :デフォルトの名無しさん:2017/07/24(月) 15:06:22.21 ID:BdqEvISL.net
あった気がする

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

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

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

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

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

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

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

784 :デフォルトの名無しさん:2017/07/26(水) 16:42:27.76 ID:Pvb1ow9Q.net
合併したんかね

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

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

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

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

787 :デフォルトの名無しさん:2017/08/01(火) 21:53:22.72 ID: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

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

789 :デフォルトの名無しさん:2017/08/02(水) 22:57:21.98 ID:GleVclNw.net
>>788
ありがと

790 :デフォルトの名無しさん:2017/08/28(月) 11:23:53.36 ID:XLKoN0Ik.net
神さま教えてください。

ADODB.Commandでのインサートが失敗しても
エラーが出ないのですが、エラーハンドリングの
方法を教えてください。

よろしくお願いします。

791 :デフォルトの名無しさん:2017/08/28(月) 21:14:51.01 ID:6Oo2q0tu.net
on error

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

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

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

795 :デフォルトの名無しさん:2017/11/15(水) 11:14:08.03 ID:PQCfnSyv.net
>>787
そのコードはFormがLoadされた時に名簿テーブルを開いてRecordsetに格納し、名前とカナをテキストボックスに入れるというものと次へボタンを押した時にFormがLoadされた時の処理とは全く関係なく次のレコ−ドに移動するもの。

ところで次へボタンでの次のレコ−ドってのは何のデ−タなんだい?
改めて言うけどFormがLoadされた時の処理なんて知らないからとAccess君は言っている。

要は、DoCmd.GotoRecordってのはデータとオブジェクトが連結されていることが想定されていて、連結されているから既にオブジェクトにレコードが表示されているわけだが、それに対して次のレコ−ドと言ってる。

一方、FormのLoad時の処理は連結関係無くデ−タを自ら取ってくるもの。
こちらのやり方を取るならRecordsetをPublic変数にするかForm内でのPrivate変数として保持しておき、他のイベント(次へボタンクリックのような)で使いまわすというやり方になる。

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

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

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

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

800 ::2017/11/22(水) 12:46:48.77 ID: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クエリ内で完結したら、制約はかからない。

801 :デフォルトの名無しさん:2017/11/22(水) 13:21:54.54 ID:as8vu/t7.net
>>798
済みません。AccessにもRangeというのがあるのですか?あと、フィルターの使い方も御教示をお願い致します。
>>799
それが、当該idを参照しているテーブルが20個以上あるので、別のコラムという訳にはいかないのです。
参照先を変更するとなるとクエリやらVBAのコードやらを書き換えないといけないので大変だと思います。
>>800
バブルソートみたいなものですね。レコード数が3万ありますので、何となく時間がかかりそうな気がしますが、試してみます。

今はソート後にDMax+iのループで重複しないidへ書き換えて、書き換えが終わってからDMaxを引くという2段階の作業をしています。
(参照元のidも2段階の書き換えをしています。))
我ながらドン臭いやり方だと思うので、もう少しスマートな方法があれば御教示をお願いいたします。

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

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

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

805 ::2017/11/22(水) 16:48:33.62 ID: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に貼り付けるやつ。

しょっちゅうやるならテーブル見直そう。

806 :デフォルトの名無しさん:2017/11/22(水) 16:57:08.62 ID:QHiNhW2y.net
>>804
方法はいくらでもあると思うけど。
Field追加して連番を振って、追加したFieldを主キーに変更して元の主キーのFieldを削除するとか。
試してないからできるか分からんけど。

そんなことせずに振りなおすならOrderByでId順にして小さい値から振りなおしたら?

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

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

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

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

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

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

作業量を問題にしてるけど
無茶な運用は後に響くよ
分かり易さを優先すべきだと思うわ

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

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

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

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

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

818 :デフォルトの名無しさん:2017/11/27(月) 22:26:05.40 ID:HF1f2kGW.net
>>817
普通に考えればSQLの方が速いに決まってると思ってたが。
遅いとしたらその文書いた奴が悪いという印象。

ま、DB系については大したレベルにないから俺が間違ってるかも。

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

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

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

822 :デフォルトの名無しさん:2017/11/28(火) 11:59:57.14 ID:vHFzkUKA.net
すくなくともRDBを使う上ではやるなって言われてるやり方

固定長ファイルにデータ保存してるようなシステムなら結構あったけどね

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

824 ::2017/11/28(火) 18:29:06.23 ID:i1R8M5pm.net
RPG区分列とかじゃないの?古い呼び方だけど。
酷すぎてだれも触りたくないやつ。
RDBに移すような事があったら、末期には照合順序をbinaryにするしか無くなったりすごく苦しむから辞めた方がいい。
メリットらしいメリット無い。LIKEで雑に'[A-C]__1_2'みたいにSELECTできることぐらい。

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

826 :デフォルトの名無しさん:2017/12/01(金) 16:18:17.01 ID:xc+Vk5Dr.net
RPGとRDBで検索したら関係ありそうなのがいくつかヒットしたけど。

検索能力は俺の方が上みたいだな。

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

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

829 :デフォルトの名無しさん:2017/12/04(月) 23:04:21.85 ID:HIES1UEg.net
言語の問題じゃ無いと思うが

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

831 :デフォルトの名無しさん:2017/12/05(火) 13:50:48.83 ID:JFWc1rHJ.net
ISAM

832 :デフォルトの名無しさん:2017/12/05(火) 14:44:30.03 ID:LtpZx+mu.net
>>830
>>822

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

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

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

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

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

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

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

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

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

842 :デフォルトの名無しさん:2017/12/07(木) 12:15:15.31 ID:YN66KLnO.net
今どき固定長レコードなんて使ってるのに前向きな理由なんて無いよ

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

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

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

846 :デフォルトの名無しさん:2018/02/05(月) 13:53:17.30 ID:e967XxUr.net
>>845
アクセスは初めてだけどエクセルVBAはそこそこ経験あります
エクセルVBAでなら自分で組める範疇ですね

すでにアクセスで途中までマクロは組んであります
同一フォルダ内にテスト用に作成してあるワードファイルを順次開いてすべてのテキストボックスの値、位置関連の数値を
Debug.Printで出力後、ワードファイルを閉じる
ここまでうまくいってるんであとはアクセスの基本機能理解すればそう困難ではないでしょう
ざっとみたところ、この用途で使う限りではそう複雑なものでもないようですし。

質問の内容はアクセスでやる利益があるかどうかという点ですね
まぁ組めばわかるんですけどね

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

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

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

850 :デフォルトの名無しさん:2018/02/06(火) 14:53:16.21 ID:Y79w2nNG.net
ミスった
すまん

851 :デフォルトの名無しさん:2018/02/07(水) 11:19:44.29 ID:mhmm9auu.net
医療過誤?

852 :デフォルトの名無しさん:2018/04/14(土) 12:06:32.62 ID: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

このコードは何をしているのでしょうか?
ご回答よろしくお願いします。

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

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

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

856 :デフォルトの名無しさん:2018/04/14(土) 19:25:20.18 ID:cGW/rI9o.net
VBAには暗黙の変換ってのがあるから
IntegerをBooleanに暗黙的に変換して評価してる

まあ、あまり良いコードじゃないな

857 :851,853:2018/04/14(土) 21:39:02.03 ID:criYFAGW.net
>>853さん
試しに、フォームと画像を用意して作ったら、点滅しました!
>>855さん
この文でも点滅しました!
>>856さん
Falseが0でTrueが-1なのですね!

ご回答ありがとうございました。
解決しました!

858 :デフォルトの名無しさん:2018/04/15(日) 10:38:49.74 ID:E1b18XLI.net
>Falseが0でTrueが-1なのですね!

そうだっけ?

859 :デフォルトの名無しさん:2018/04/15(日) 12:40:33.57 ID:VXOW+WoG.net
Access で画像を点滅する?

そんなの普通は、JavaScript, jQuery とかだろ

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

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

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

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

864 :デフォルトの名無しさん:2018/04/21(土) 16:21:47.73 ID:Zke6MJB8.net
OpenQueryをCから実行

865 :デフォルトの名無しさん:2018/04/21(土) 17:48:56.41 ID:e0mRRnZY.net
BULK INSERT は?

そもそも、INSERT文は速くならない!

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

状況にもよるかもしれんけど。

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

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

869 :デフォルトの名無しさん:2018/04/23(月) 09:13:20.51 ID:/uUuSWda.net
やってみてから言ってくれ。
俺の場合は実際早かった。

俺の場合は1カラムずつじゃなくてフィ―ルド名の配列と値の配列でAddNewだけど、たぶん1カラムずつセットしてUpdateでも早いんじゃないかな。

870 :デフォルトの名無しさん:2018/04/23(月) 09:41:02.27 ID:Yo1LL5su.net
そんなあほな

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

872 :デフォルトの名無しさん:2018/04/23(月) 17:22:09.14 ID:zWK+uIrS.net
>>869
やってみるから、フィールド数、フィールド長とレコード数教えれ
あと配列のデータどう用意するのかと、比較するクエリの元データどうすのかも

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

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


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

873 :デフォルトの名無しさん:2018/04/25(水) 22:44:48.30 ID:dGu0vJMQ.net
>>871
そんな低レベルの話はしとらん。

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

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

「access insert addnew 速度」でクグってみればけっこうAddNewの方が早い話が見つかるぞ。

874 :デフォルトの名無しさん:2018/04/26(木) 20:39:25.51 ID:/vLmdzNr.net
だからどこからどうやって元データ取ってきてるんだと
リンクテーブルやリモートDBでADOの方が早いとかなら別に驚くに値せんけどな

というかお前らOpenQueryってレコード数分実行する前提で話してたのか?

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

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

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

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

879 :>>877:2018/05/09(水) 17:09:04.61 ID:OAputzVD.net
レスが付かないので別の掲示板に移動します。

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

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

882 :デフォルトの名無しさん:2018/05/16(水) 14:07:17.01 ID: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.
て書いてあってヤメレって書いてあるのになんでやりまくるのですかね?

883 :デフォルトの名無しさん:2018/05/16(水) 14:57:23.49 ID:Ml4MG34X.net
subの代わりにしてんじゃないの

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

885 :デフォルトの名無しさん:2018/05/16(水) 19:24:53.85 ID:DzLb+Dky.net
業務でプログラム組むような場合は、コーディングスタイルが指定されてる事が多いんだよ

正確には戻り値のないFunctiionじゃなくて、戻り値を無視してるだけだけどな

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

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

888 :デフォルトの名無しさん:2018/05/17(木) 00:12:37.33 ID:e2hshpiX.net
呼び出しネストの限界がFunctionのほうが浅いってデメリットがあるはず
呼び出しに必要なスタック領域が違うから
昔だれかが実測してたな。まあ再帰でよっぽどのことやらんと問題ないんじゃね

SubをFunctionにして可読性が落ちるとか、それ関数の命名に問題がある気がするがな

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

890 :デフォルトの名無しさん:2018/05/17(木) 11:23:10.83 ID:eM4CBQj1.net
後でやろうとしてやめちゃうってのは非常に大変頻繁によくあることだからね。

891 :デフォルトの名無しさん:2018/05/17(木) 12:28:55.01 ID:HY+Xmele.net
>>882
呼び出し側でいちいち call 書くの面倒だから

892 :デフォルトの名無しさん:2018/05/17(木) 13:35:45.45 ID:vSfZvvAw.net
>>891
FunctionもSubもCallを書かなくても呼び出せすので、理由にならないと思います。
個人的には、Callが書いてないと唐突に見慣れない文が出現するので驚いちゃいます。馴れれば、労力の軽減になるのかな?

893 :デフォルトの名無しさん:2018/05/17(木) 13:53:44.02 ID:HY+Xmele.net
call 書かないと () 付かないだろ
() 付かないから知らない文が出て来たと思ってしまう
() 付ければ関数だと判るが call 書かないといけないって話

894 :デフォルトの名無しさん:2018/05/17(木) 15:12:43.90 ID:vSfZvvAw.net
>>893
済みません。よくわかりませんのでかみ砕いておしてもらえますか?
Callと括弧がペアで必要なのは理解しています。
もちろん、CALLなし、括弧なしでFunctionもSubも呼び出せるのも知っています。
両者の呼び出しの記法が全く同じで、唯一の例外が
lngSum=AddNumbers(10,20)
等の場合ということも知っています。

895 :デフォルトの名無しさん:2018/05/17(木) 15:32:30.96 ID:vSfZvvAw.net
>>885
こんな感じですかね?
SUBは使わないのが基本?
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=47673&forum=36
↑でも結局解決していませんね。

896 :デフォルトの名無しさん:2018/05/17(木) 17:22:26.67 ID:eM4CBQj1.net
つい全文読んじゃったよ
いろんな考えの人がいるんだね

897 :デフォルトの名無しさん:2018/05/19(土) 13:29:25.00 ID:CLRFNNLm.net
>>894
えっcallなしで呼び出せるの?知らない事がたくさんあるなあ

898 :デフォルトの名無しさん:2018/05/19(土) 13:36:56.85 ID:hVWJ7ayQ.net
>>897
英語の本にはちゃんと書いてあるんですよね。私はVBSの本で知りました。

899 :デフォルトの名無しさん:2018/05/23(水) 19:16:19.68 ID:Au5e7VGg.net
僕の知り合いの知り合いができたパソコン一台でお金持ちになれるやり方
役に立つかもしれません
グーグルで検索するといいかも『ネットで稼ぐ方法 モニアレフヌノ』

BHZ67

900 :デフォルトの名無しさん:2018/05/24(木) 10:37:30.53 ID:cPlRxlDn.net
BHZ67

901 :デフォルトの名無しさん:2018/05/24(木) 21:31:25.23 ID:fKzQ9ZgX.net
ありがとう、僕も幸せになります

902 :デフォルトの名無しさん:2018/06/13(水) 13:33:14.15 ID:jDAL4HLn.net
全モジュールをExportするコードがネットにあったので試したら、0TESTModuleという名前のモジュールでエラーになった。0TESTに書き換えたら通った。
予約語かと思ったけど、そんなリスト見つからない。モジュールに名前にModuleが含まれていると失敗するものなの?
ちなみに使ったコードは↓
https://stackoverflow.com/questions/16948215/exporting-ms-access-forms-and-class-modules-recursively-to-text-files

903 :デフォルトの名無しさん:2018/06/29(金) 23:41:22.03 ID:Ur5E76UH.net
学生はaccessの勉強してないよね。既存の社内システムメンテナンスできる人を募集してるけど応募が無い。
accessなんて社会人になってから仕事の合間に覚える人がまれにいる、程度のものなのかな。

904 :デフォルトの名無しさん:2018/06/30(土) 00:22:45.41 ID:2tzAZf7R.net
そもそもOfficeのPro版がほとんどの市販PCに載ってないから触れたことすらなかった

905 :デフォルトの名無しさん:2018/06/30(土) 12:32:46.83 ID:QJJEkoJ9.net
大学はFileMakerすすめるからな

906 :デフォルトの名無しさん:2018/06/30(土) 22:27:35.34 ID:XUZKNvMV.net
>>903
給料が安いから応募がないんじゃないの?

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

だから社内システムメンテ出来る人は普通の会社には行かないのでは
そこまで出来るなら専門業者で働いた方がずっと稼げるだろう

907 :デフォルトの名無しさん:2018/06/30(土) 23:30:30.56 ID:D2LAG+Ct.net
人にもよるだろ。
俺の印象では3000円弱ぐらいまではいく。

908 :デフォルトの名無しさん:2018/07/01(日) 22:59:11.58 ID:zfW8OWzE.net
>>904
今は単品で15,000円位だから、コスパ良い開発環境だと思うのだが。

909 :デフォルトの名無しさん:2018/07/02(月) 11:07:23.80 ID:kZ0RH16R.net
VBAで自動メンバー表示できるVBE以外のエディタってあるのかな?

910 :デフォルトの名無しさん:2018/07/04(水) 06:14:38.14 ID:0ZnatSkO.net
VBS のエディタが使えないかな。

911 :デフォルトの名無しさん:2018/07/04(水) 22:00:33.68 ID:gFgZc5FG.net
OH1

912 :デフォルトの名無しさん:2018/07/04(水) 22:52:05.24 ID:SBPTcvBw.net
>>910
vbseditで試したけどダメだった
emacsで成功した人がいたのでWIN用emacsインスコしてみた
この後は面倒くさいからあしたやるemacsはいろいろ出来てすごいと言うことが少し分かったわ

913 :デフォルトの名無しさん:2018/07/04(水) 23:17:14.61 ID:uOrTSuCX.net
VS CodeにVBA用の拡張があったはず
ふつうのVSにも探せばあるかもな

914 :デフォルトの名無しさん:2018/07/05(木) 04:54:44.26 ID:/W/cgvJ/.net
VBE ではないエディタが欲しい場面とは?良かったら教えて。

915 :デフォルトの名無しさん:2018/07/05(木) 10:21:34.29 ID:6LeJvB+6.net
>>913
VSCの奴は2つ入れたけど,オートコンプリートはできるけど,自動メンバー表示は出来ないですね.

>>914
一般的なエディタと比べると余りにもVBEが低機能だからですね.
たとえばコードフォールディングをしたいし,行番号も見たいけど,出来ないですからね.ズームが出来ないのも案外不便.

916 :デフォルトの名無しさん:2018/07/05(木) 23:08:09.61 ID:pNcP8vSm.net
フォームでマウスホイールをコロコロしてレコードを移動させるプログラムを教えていただけませんか?

917 :デフォルトの名無しさん:2018/07/10(火) 21:58:48.67 ID:U+UpIg0Q.net
ソース連結の単票フォームなら、何にもしなくてもホイールコロコロでページパタパタ出来るけど
そういうのとは違うのか  或いは、制作者が敢えて無効にしてるのを有効化したいのか
或いは、帳票フォームの上下・・ これもホイール効くか、、 シーンを限定してもわらないと

918 :デフォルトの名無しさん:2018/07/11(水) 04:54:43.98 ID:UzCikUyf.net
>>915
913です。VBE良くできてるな便利だなと思って使ってました。もっと捗るエディタも有るんですね。

919 :デフォルトの名無しさん:2018/07/11(水) 06:04:47.59 ID:ejJItOxX.net
>>918
ネット上にはVBEを賞賛する声は余り見ませんね。悪口は沢山見ます。
emacsをインスコしてみましたが、Windows7 64bitではダメでした。
emacsならやりたいことが全部出来るはずですが、lisp書けないから悲しいです。

920 :デフォルトの名無しさん:2018/07/22(日) 19:25:52.08 ID:fTZbDOvh.net
質問です
UPDATEでテーブルを一斉更新する際に、
「Aさん」「Bさん」「Cさん」のようなデータを
繰り返しで連番のように入力させる手段は無いのでしょうか?
連番のような数値型は出来るようなのですが、
文字列で実現する方法が分からないです

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

お手数をおかけしますが、どうかご教授ください
よろしくお願いします

921 :デフォルトの名無しさん:2018/07/23(月) 00:04:34.46 ID:2H/uT7qC.net
一度連番を振ってその後に「連番 mod 3 = 0」をAさん、
「連番 mod 3 = 1」をBさん、連番 mod = 2」をCさん
っていうようにすれば出来なくもないか…
でもスマートじゃないですし、処理に時間がかかりそうですね

922 :デフォルトの名無しさん:2018/07/23(月) 06:42:41.53 ID:Aoeea3bS.net
>>920
解答ではありません。
私ならexcelにエクスポートして手作業でautofill してインポート。またはvbaで一件ずつ読み書き。
Sqlでどうするかわかったら教えてください。

923 :デフォルトの名無しさん:2018/07/23(月) 10:05:37.58 ID:86GO4HnW.net
連番(数値型)を繰り返し入力させる方法が分かるのなら、
1=Aさん、2=Bさん、…っていうテーブル用意しておいて、
連番振ったあと更新クエリで文字列を更新させるのは駄目ですか?

924 :デフォルトの名無しさん:2018/07/23(月) 10:21:18.69 ID:eU1p7hr8.net
autoincrement

925 :デフォルトの名無しさん:2018/07/27(金) 08:00:42.36 ID:G5saNUly.net
20人程度が1つのテーブルにそれぞれ10分間隔くらいでUPDATE INSERTをしているんですが、突然テーブルが開けなくなりました
「他者が開いています」というメッセージが出て開くことやコピーすら出来なくなりました

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

フロントエンドとしてユーザーの数だけUI用のAccessファイルを準備して、
バックエンドはテーブル1つだけのAccessファイルを置いています

926 :デフォルトの名無しさん:2018/07/27(金) 12:49:22.89 ID:ASV/JfNN.net
そうなる前に、誰かがなんかのエラーを発してるはず
或いはエラーを殺しちゃってるかどうか
大概マズイことには口を噤むのが社畜の習い性

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

コピーすらできないなら、サーバー側での対策として
バックアップ時に戻すか
そのファイルさえ救出出来たら修復できるんだろうけど

927 :デフォルトの名無しさん:2018/07/27(金) 13:38:08.89 ID:rdFKIS0q.net
共有数の制限の気がするけど
そのバックエンドのアクセスファイルはどこでどうやって共有してるんだよ

928 :デフォルトの名無しさん:2018/07/27(金) 17:29:47.26 ID:hf+c8Fmp.net
919です
返答が遅くなってしまい申し訳ありません

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

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

って感じのイメージです

>>923
週休者には割り当てたくなかったので上記方法で解決しました

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

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

>>927
特にオプションをいじっていないaccdbを共有サーバに
そのまま置いてる状態です
データを取得するのはサーバのバックエンドテーブルを
ローカルファイル(フロントエンド)にコピーして
ローカルで完結して参照しています
更新や追加する時だけバックエンドのテーブルに
UPDATEとINSERTをしています

930 :デフォルトの名無しさん:2018/08/11(土) 16:51:32.08 ID:/3QviRkj.net
質問です。
分割フォームの
分割フォームデータシートプロパティを
VBAから操作できる方法がありますでしょうか?
ご教授お願い致します。

931 :デフォルトの名無しさん:2018/08/11(土) 18:04:27.51 ID:MwiIaP9n.net
具体的なプロパティもわからんしお休みなのでパソコンも手元にないけど検索したらsplitformsize のvba コードがあるから何らかの操作は出来るんでないの?お盆モードの適当コメントですまぬ。

932 :929:2018/08/11(土) 18:45:39.43 ID:/3QviRkj.net
>>931さん

ありがとうございます!
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

ありがとうございます!!

933 :デフォルトの名無しさん:2018/08/23(木) 22:05:56.98 ID:VOAIsull.net
サイズの限界まで巨大化しているフォームを改造して、様々なコントロール類をタブコントロール上に配置しようと考えています。
元のフォーム上のコントロール類をコピーしてタブコントロール上にペーストしたまでは良かったのですが、イベントプロシジャーがごっそり抜け落ちています。コマンドボタンを押してもなにも始まらない状態です。
イベントプロシジャーを保持したままコントロールをコピペする方法はありますか?

934 :デフォルトの名無しさん:2018/08/23(木) 22:21:39.28 ID:VOAIsull.net
解決しました。
https://bytes.com/topic/access/answers/688028-controls-cut-paste

935 :デフォルトの名無しさん:2018/08/24(金) 06:25:14.72 ID:zBeCnEZ1.net
>>934
良かったね。
俺はVBA コードを頑張ってコピーしてるのでよかったら解説下さい。えーごわからないので。翻訳機能?あの人たちとは話が合わん!

936 :デフォルトの名無しさん:2018/08/24(金) 09:58:42.20 ID:IIPiSmN7.net
Accessの本はいろいろ買ったけど、良書だなあと感心したのはほとんどが未翻訳の洋書でした。
谷尻、緒方、葛西も和書としては悪くないのですが、洋書と比較すれば月とスッポンです。
技術書の英語は辞書とgoogle翻訳でだいたいなんとかなりますよ。
たまに文学的表現があってイラッとしますけど、だいたいが簡単明瞭です。

937 :デフォルトの名無しさん:2018/08/24(金) 10:46:31.53 ID:jVqNqoKW.net
すいません質問です。オフィス365です。
手動で空のサブレポートをレポートに配置しました。これをVbaコード でコピーする方法を教えてくださいませ。

938 :デフォルトの名無しさん:2018/08/30(木) 13:16:49.85 ID:onaqxfsR.net
すみません、質問させてください。
ExcelからAccessの特定のフォーム
を閉じるとき、
DoCmd.Close acForm, "フォーム名"
で入れると、おそらくacFormがAccessVBAの引数のためか、
エラーが出てしまいます。
何か解決方法があればご教授よろしくお願いします。

939 :デフォルトの名無しさん:2018/08/30(木) 13:20:53.05 ID:S/vwwZyF.net
アプリが違うからOLEとかActiveXObject使うんでは

940 :デフォルトの名無しさん:2018/08/30(木) 14:29:11.04 ID:4drhoSMA.net
>>938
acForm=2なので、acFormじゃなく直接2を指定してみると上手く行くかも

DoCmd.Close 2, "フォーム名"
↑でやってみて

941 :デフォルトの名無しさん:2018/08/30(木) 16:02:05.01 ID:onaqxfsR.net
>>939さん、939さん
ありがとうございます。
939さんの方法でいけました。
ありがとうございますm(_ _)m
番号で指定する方法があったのですね。
感謝です。

942 :デフォルトの名無しさん:2018/08/30(木) 23:00:19.83 ID:NGm4WU4A.net
Access.AcObjectType.acForm が 2

943 :デフォルトの名無しさん:2018/09/13(木) 01:52:34.58 ID:iAlG4Fvk.net
アホな質問ですまん。
クエリの中でクエリを複数使うクエリを作成したんだけど、これをSQLに書き直すときにエイリアスを使いたいんだけど、クエリに対するエイリアスは使えるのかな?テーブルだけかな?
実験した感じではダメそうなんだけど、どうですか?

944 :デフォルトの名無しさん:2018/09/13(木) 03:14:29.75 ID:liq2Qruq.net
>>943
普通に使えるはずだが
AS付けてないとか

945 :デフォルトの名無しさん:2018/09/13(木) 03:15:45.30 ID:liq2Qruq.net
DAO経由じゃないとだめだったかも

946 :デフォルトの名無しさん:2018/09/13(木) 12:56:01.88 ID:C2gZ+hmS.net
>>943
普通に出来るはずだぞ
どういう状況でダメになってるんだ?

947 :デフォルトの名無しさん:2018/09/13(木) 13:07:05.55 ID:C2gZ+hmS.net
>>943
サブクエリの話だよな?
自作ツールで確認したがASで普通にできてたぞ

948 :デフォルトの名無しさん:2018/09/14(金) 08:17:56.50 ID:JMy0VfN7.net
たぶん、サブクエリじゃなくて作成済みのクエリをSQL内部のFROM句やJOIN句にテーブルのように使う時にエイリアスを使いたいという話だと思うんだが、それでも普通に使えると思う。

949 :942:2018/09/14(金) 11:04:12.59 ID:cjIZJ/+q.net
みんな、ごめん。使えました。
おいらがSQLビューで書くときに、どっか間違えたみたい。
クエリのエイリアスも使えるし、サブクエリでネストも出来るし、accessって凄いね。糞長いSQLを書きたくなるね。
問題は余計な括弧がいっぱいくっつくところだよね。

950 :デフォルトの名無しさん:2018/09/14(金) 12:54:33.03 ID:cjIZJ/+q.net
またまたくだらない質問です.
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テーブルが書いてあるのが不可解ですね.
なんで,こんな変な書き方をするのか分かる人いますか?

951 :デフォルトの名無しさん:2018/09/14(金) 13:41:49.29 ID:5xDSXwp0.net
fromが無いから

952 :デフォルトの名無しさん:2018/09/14(金) 15:43:10.38 ID:cjIZJ/+q.net
>>951
FROMを書きました.下のようにしました.でも,演算子がありませんと怒られます.

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

953 :デフォルトの名無しさん:2018/09/14(金) 15:43:55.27 ID:cjIZJ/+q.net
これも同じように怒られます.

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

954 :デフォルトの名無しさん:2018/09/14(金) 18:33:15.77 ID:JMy0VfN7.net
それだと[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];

スマホからテキトーに書いてるので間違ってたらスマン。

955 :デフォルトの名無しさん:2018/09/14(金) 20:41:59.46 ID:cjIZJ/+q.net
>>954
上のは,更新可能なクエリであることが必要です と怒られました.
下のは成功です.ありがとうございます.

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

次はクエリを参照するUPDATEを書かないといけないのですが,テーブルならOKでクエリでは怒られるんですよね.
http://www.10days.org/diary/20090705.htmlとかその他いろいろヒットしますが,VBAからSQLを発行したら出来るんですかね?
とりあえず実験します.

956 :デフォルトの名無しさん:2018/09/14(金) 21:06:57.90 ID:wdFP/Mir.net
>>952
横入だがAccessがUPDATEでのFROMを
サポートしていないという意味での「FROMがないから」
じゃないの?

957 :デフォルトの名無しさん:2018/09/14(金) 21:11:41.20 ID:wdFP/Mir.net
>>955
確かAccessはUPDATEでFROMは使えないぞ

958 :デフォルトの名無しさん:2018/09/14(金) 21:32:20.19 ID:cjIZJ/+q.net
>>957
マジすか?ありがとうございます.
SQLって方言が多いんですね.

959 :デフォルトの名無しさん:2018/09/15(土) 02:34:58.26 ID:7Yaecm93.net
UPDATE文は特に方言が多いんだよ

960 :デフォルトの名無しさん:2018/09/15(土) 11:35:48.46 ID:AVfR6YnT.net
>>955
更新クエリに設定しろ

961 :デフォルトの名無しさん:2018/09/16(日) 09:41:31.06 ID:o5IUt/R9.net
昔はオラクルとかに直接更新クエリ実行しようとして固まってたなあ、、、
ハード性能上がった今でも固まるのかね?

962 :デフォルトの名無しさん:2018/09/16(日) 16:10:48.91 ID:qqKBC7cw.net
リンクテーブルに対して何かするのを「直接」とは言わないからな?

963 :デフォルトの名無しさん:2018/09/16(日) 18:15:18.31 ID:HF0YmRsW.net
アスペですね

964 :デフォルトの名無しさん:2018/09/16(日) 19:05:43.00 ID:8jdJAOdP.net
それ以前に、ハード性能で固まったことなんてないんだが
単に遅いだけで固まったって言ってるのかね

965 :デフォルトの名無しさん:2018/09/16(日) 19:27:12.80 ID:yPlmt9/8.net
>>964
初代ペンティアムマシンでAccess97で動かした事無い人かな

966 :デフォルトの名無しさん:2018/09/16(日) 20:39:37.56 ID:fj0Djq38.net
>>965
それは何自慢?俺は20年前からACCESS やってるベテランだぞすごいだろう?

967 :デフォルトの名無しさん:2018/09/16(日) 22:05:06.06 ID:8jdJAOdP.net
>>965
だからそれは単に遅いだけだろうと言ってるんだが

ついでに言えば、ACCESSで外部DBMS使うときに一番気を付けるべきは回線の速さだがな
その環境でも、100MのLANならそれなりに快適だったわ

968 :デフォルトの名無しさん:2018/09/17(月) 17:09:58.71
単に遅いだけって言うけど、10分間「応答なし」になったら? 1時間なら? 1日なら?
それでも固まったって言わない?

969 :デフォルトの名無しさん:2018/09/17(月) 18:07:40.72 ID:l9KryutO.net
486DXでAccess95とか動いたっけ

970 :デフォルトの名無しさん:2018/09/17(月) 19:52:07.58 ID:3YPJfo/c.net
多分動いたと思う。
ペンティアム90では確実に動いた。
当時486DX100マシンにOffice入れてたと思うんだが、そのマシンでAccess動かしたかどうかで記憶が無い。

971 :デフォルトの名無しさん:2018/09/18(火) 01:29:37.70 ID:Bq/PEIsn.net
Windows95が動いてたからOFFICEの95も動いてたと思う

972 :デフォルトの名無しさん:2018/09/18(火) 19:14:26.16 ID:32W6TMTL.net
マハーポーシャの思い出しかないわ

973 :デフォルトの名無しさん:2018/09/18(火) 21:06:59.49 ID:Y+CFjjh5.net
>>972
出張でアキバ行ったらチラシ貰った。あんな事件起こすなんて夢にも思わず、スペックのわりに安いじゃんなんて思ってたわ。

974 :デフォルトの名無しさん:2018/10/15(月) 12:32:08.29 ID:UJZpBNX3.net
DAOでmdbに接続して、フォーム上のコントロールボタンのCaptionを大量に一括変更したいんだけど、できるかな?
データーベースオブジェクトのメンバーのリストを眺めてもフォーム関連がないので、だめなのかな?

975 :デフォルトの名無しさん:2018/10/15(月) 13:28:15.42 ID:L3fZFxj5.net
>>974
COMオブジェクト生成で
Application→Forms→Form→Controls→Control
ってたどる感じかな
最近どうなってるか知らん
https://docs.microsoft.com/en-us/previous-versions/office/developer/office-2003/aa663065(v=office.11)

976 :デフォルトの名無しさん:2018/10/15(月) 19:00:25.28 ID:UJZpBNX3.net
リンクが死んでいて読めません。
ネット探しても情報が見つかりませんね。
パッチを当てるときに便利な気がするのですが…
私が知ってるパッチはモジュールやフォームを入れ替えるものばかりですが、一部編集みたいなことが出来ると便利な気がしますがどうでしょうか。
コードを1行書き換えとか出来ると便利な気がしますが、リスクもありそうですね。

977 :デフォルトの名無しさん:2018/10/15(月) 23:32:47.15 ID:L3fZFxj5.net
>>976
MSのURLは2chのリンク表示と相性が悪いからクリック
カッコまで全部コピーしてブラウザに貼りつけないと付けると飛べるぞ

ラベルを外部リソースにしてフォーム側で呼び出すのが正攻法な気がするが
多言語対応とか

978 :デフォルトの名無しさん:2018/10/16(火) 07:11:10.97 ID:o1jBtF96.net
DAO で接続じゃなぁ

979 :デフォルトの名無しさん:2018/10/16(火) 19:50:00.82 ID:nNSV5Ror.net
接続は別になんでもいいです。

980 :デフォルトの名無しさん:2018/10/22(月) 12:14:49.52 ID:9BvHUkZ3.net
マクロの編集をVBAで出来ませんかね?バージョンアップの際にカスタマイズ済のAutokesyを再現したいもので。

981 :デフォルトの名無しさん:2018/10/23(火) 14:44:19.48 ID:qJAZHzzr.net
>>980
出来る、何年か前に前の勤め先でやったわ
あまり覚えてないが、VBEにアクセスする方法があって
それで出来たと思う

ググりながらやった覚えがあるからググれば
何かヒントが出てくると思う

982 :デフォルトの名無しさん:2018/10/23(火) 17:12:08.69 ID:D922t3yz.net
>>981
saveastextですね。あれ、最近のoffceだとゴミコードが1行あって、そのままでは読み込めないんですよね。

983 :デフォルトの名無しさん:2018/12/04(火) 21:13:39.22 ID:TBSeaia1.net
業務用ソフトでどこからもGOTOされていないラベルがあるんだけど、作った奴は馬鹿なのかな?

984 :デフォルトの名無しさん:2018/12/05(水) 13:19:49.01 ID:2sSegHBZ.net
いくらでもある

985 :デフォルトの名無しさん:2018/12/05(水) 14:21:48.59 ID:8B064Egy.net
そうですか…
宣言だけして使わない変数や、空のプロシジャー、その空のプロシジャーを呼び出す無意味なプロシジャー、戻り値を変数に格納だけしてなにも利用しない関数とか意味不明なことが多くてPGの世界ってカオスなんだな。
リーダブルコードとかだと絶対に怒られるようなことが目白押しだわ。

986 :デフォルトの名無しさん:2018/12/05(水) 14:51:15.50 ID:2sSegHBZ.net
理想と現実は違う

987 :デフォルトの名無しさん:2018/12/05(水) 15:58:58.90 ID:Tdi7Zg1z.net
そう、動きゃいいんだから
見た目なんか気にしてたら絶対に間に合わない

988 :デフォルトの名無しさん:2018/12/05(水) 17:29:29.08 ID:8B064Egy.net
なるほど…
カスタマイズしている方からすると添削をしているよう気分になりますね。
稼働しているコードの何倍もあるコメントアウトされた過去コードとかあって、正にべからず集みたいなもんですね。

989 :デフォルトの名無しさん:2018/12/05(水) 17:34:49.19 ID:kX9gokKe.net
実際問題
中身はgdgd
https://www.filemaker.com/jp/solutions/customers/stories/shinshu-ham.html

990 :デフォルトの名無しさん:2018/12/07(金) 12:18:56.42 ID:RZ2R69DU.net
>>989
FileMakerはスクリプト(マクロ)しか無いからな

991 :デフォルトの名無しさん:2018/12/07(金) 18:12:05.49 ID:Uga2tmpi.net
>>990
両方そなわってたら、Accessを潰せてたのにね。

992 :デフォルトの名無しさん:2018/12/10(月) 21:20:32.74 ID:WdAp4299.net
マクロのAutokeysが急にキーを取りこぼすようになった。F1を押すとプロシジャーの実行をしてくれないでHELPが立ち上がる。
F2等をおしても無反応になってしまった。officeのアップデートが原因かな?WIN7とAccess2016の組み合わせなんだけど分かる人いますか?

993 :デフォルトの名無しさん:2018/12/11(火) 13:04:58.28 ID:eQLW3H68.net
Access最近アプデしてないな
古いのまだ使ってる

994 :デフォルトの名無しさん:2018/12/11(火) 18:13:25.39 ID:fkccCnsx.net
>>993
2013使ってるならアプデする意味がほぼないし

995 :デフォルトの名無しさん:2018/12/11(火) 19:29:38.35 ID:cP19L9C3.net
20年くらい前はAccessファイルはいつ壊れるかわからない。
って言われてたけど、いまってどうなの?

996 :デフォルトの名無しさん:2018/12/11(火) 21:03:35.30 ID:OP7GyNdd.net
>>995
今は壊れることはなくなったよ。

997 :デフォルトの名無しさん:2018/12/11(火) 21:35:29.03 ID:kFp89+PJ.net
いつの間にかデータアクセスページなくなったの?

998 :デフォルトの名無しさん:2018/12/11(火) 23:24:33.12 ID:ADs7qBab.net
>>995
同じだと思うよ。いつもは動くプロシジャーが変な挙動するようになってそのうち、フォームが全部消えちゃうとか何度もあった。というかこの1週間でもあったよ。本当にポンコツだよ。
とはいえ、ここまでカスタマイズが自由に出来るDBって他に無いような気がするけど、どうなんだろう。

999 :デフォルトの名無しさん:2018/12/12(水) 00:19:48.14 ID:GF6Qf3Td.net
WindowsFormの不自由さにはびっくりしたな

1000 :デフォルトの名無しさん:2018/12/12(水) 10:51:22.24 ID:I3Mp/+TW.net
いまはIMEの辞書が良く壊れるイメージ

1001 :デフォルトの名無しさん:2018/12/12(水) 10:53:08.65 ID:I3Mp/+TW.net
>>998
小規模のシステムでも
テーブル用のmdbとフォーム用のmdbを分けて
リンクで管理すると壊れるケースはかなり減った

1002 :デフォルトの名無しさん:2018/12/12(水) 10:53:27.51 ID:I3Mp/+TW.net
次スレはよ

1003 :2ch.net投稿限界:Over 1000 Thread
2ch.netからのレス数が1000に到達しました。

総レス数 1003
274 KB
掲示板に戻る 全部 前100 次100 最新50
read.cgi ver 2014.07.20.01.SC 2014/07/20 D ★