Access総合相談所 其の22at BSOFT
Access総合相談所 其の22 - 暇つぶし2ch405:名無しさん@そうだ選挙にいこう
09/10/26 21:44:20
>>403

>DBEngine.SetOption dbMaxLocksPerFile, 200000 を指定した後に

たぶん、このせいだろう。ルーチンを抜ける前にMaxLocksPerFileを規定ぐらいに戻してみては。

406:名無しさん@そうだ選挙にいこう
09/10/26 21:55:53
>>404
ちょっとやってみる。

>>405
一番最後に9500で指定を入れてみる

もう一回挑戦してみます。優しく教えていただき感謝です。

407:名無しさん@そうだ選挙にいこう
09/10/27 07:50:32
PD……F?

408:374
09/10/27 10:23:48
遅レスすまそ、知恵熱出てた。。

>>377 はい、LONG型になってます。
>>381 引数渡しの基礎知識が抜けていました、そういうことだったんですね!試してみます!!
>>382 参考にします。

皆さんありがとうございましたm(_ _)m

409:名無しさん@そうだ選挙にいこう
09/10/28 13:48:38
すいません、質問させてください。
WindowsXP, Access2002

PCを起動すると起動すると最初に
重大なエラー。言語ごとのリソースファイルC:Program Files\MicrosoftSQL Server\
80\Tools\Binn\Resources\1041\SQLSVC.RLLを読み込めなかったので実行を継続できません。

と出たのですが、ググっても解決方法が載っていないままのサイトしか見つからず、途方にくれています。
どのようにすれば直るのでしょうか。SQLSVC.RLLっていうのはどこからかDLできるものでしょうか?

410:名無しさん@そうだ選挙にいこう
09/10/28 14:01:09
それ、Accessの問題っていうより、MicrosoftSQL Serverの問題なんじゃね?

411:名無しさん@そうだ選挙にいこう
09/10/28 14:07:25
>>410
Accessのファイルの一部が開けないのでAccessがおかしいのかなと思ってました。

\1041といフォルダは見つかったのですが、SQLSVC.RLLはありませんでした。
他のPCに入っているSQLSVC.RLLをコピーしてきてもいいものなのでしょうか?

412:名無しさん@そうだ選挙にいこう
09/10/28 14:15:30
重大なエラーと出ました。 <URLリンク(windowsxp_toshiba.pasokoma.jp)

SQLSVC.RLLというのはMicrosoftSQL Serverというソフトの1部です。
スタート→ファイル名を指定して実行→msconfigと記入してOK。
システム構成ユーティリティのスタートアップまたはサービスに
SQL Server関連のものがあったらチェックを外して再起動してみてください。
コマンドと場所の間の縦棒をダブルクリックするとフルパスが見られます。

とのこと。

413:名無しさん@そうだ選挙にいこう
09/10/28 14:18:38
>>412
はい、自分がぐぐって見つけたサイトってそこのことです。
最終的に  SQL Server 何回か確認してやりましたけど元に戻らないです。
とあったので、もしかして直ってないまま終わっているのかとおもって質問させてもらっています。

414:名無しさん@そうだ選挙にいこう
09/10/28 14:22:39
教えて!保険市場 SQLServer2005のサービスが起動しない <URLリンク(oshiete.hokende.com)

まず、「スタート」→「すべてのプログラム」→「SQLServer2005」→「構成ツール」→「SQLServer構成マネージャ」の順に開いて下さい。

そうすると、SQLServerConfigurationManaerと言うのが開きますから、その中で、状態が停止のプログラムが無いでしょうか?

もしあれば、そのプログラムをダブルクリックしたらプロパティが出てきますから、「開始」をクリックしたら、実行に状態が変わります。

それで、動かなかったプログラムが動きました。

とかは?

415:名無しさん@そうだ選挙にいこう
09/10/28 14:26:30
>>414
ありがとうございます。試してきます!

416:名無しさん@そうだ選挙にいこう
09/10/28 14:43:46
MSSQLSeverスレに行けというところだが、
行ったところで、ボケカス言われて解決しねぇかもだな。

417:名無しさん@そうだ選挙にいこう
09/10/28 17:24:58
うん、ここの民は基本いい人。

418:名無しさん@そうだ選挙にいこう
09/10/28 18:42:42
ウォームハートエスパーの棲むスレだな。

419:名無しさん@そうだ選挙にいこう
09/10/28 22:49:21
そういう空気は大切にしないとな

420:名無しさん@そうだ選挙にいこう
09/10/28 22:56:06
質問があります。
会社に行かないと物がないのと会社から書き込みできないので多少抽象的になってしまうこと
お許しください。

今帳票フォーム(ログイン)とメインフォームがあります
ログイン画面で社員番号を入れてログインボタンを押します。
番号が存在するならメインフォームが立ち上がるのですが、
この立ち上がると同時に、ログイン画面で入れた社員番号の情報を
メインフォームに載せたいと思っています。

入力した番号だけはメインフォームに参照させることが出来たのですが
その他に名前と部署をメインフォームのテキストボックスに入れたいのです。

ログインしたとき(入力は社員番号のみ)に社員情報をすでに表示したいと言うのが目的です。
テーブルは社員マスタの中に番号、名前、部署で主キーは番号です

よろしくお願いします

421:名無しさん@そうだ選挙にいこう
09/10/28 23:07:22
>>420
Vlookup関数を使えばいいと思うよ~~

422:名無しさん@そうだ選挙にいこう
09/10/28 23:08:10
DLookUpでしたw

423:名無しさん@そうだ選挙にいこう
09/10/29 20:48:58
os:WinXp Version:2007です。
突然ですが、お聞きしたいのですが、

氏名  点数  週塾日
Aさん 50点  平成21年5月3日
Bさん 55点  平成21年6月1日



の様なテーブルがあり、そこから
たとえば、

年・月  月別習塾者  60点以上
21年5月   20人     10人 

のように作りたいのですが、月別の人数合計は出せても、
○○点以上の合計人数を出す方法がわかりません。
四苦八苦してやっても、それぞれの点数(60点、61点、62点)の
合計人数しか出せずに困っています。

どうにかなる方法ありませんでしょうか  

424:名無しさん@そうだ選挙にいこう
09/10/29 20:58:08
>>423
あります!

425:名無しさん@そうだ選挙にいこう
09/10/29 21:11:13
DCount("点数","21年5月",点数>59)

とかかな?

426:名無しさん@そうだ選挙にいこう
09/10/29 23:11:58
>>423
SELECT format(#5/1/2009#,"e") & "年" & format(#5/1/2009#,"m") & "月"as 年・月, Count(テーブルA.氏名) AS 60点以上, (SELECT Count(*) FROM テーブルA WHERE
((テーブルA.週塾日) Between #5/1/2009# And #5/31/2009#)) AS 月別週塾者 FROM テーブルA
WHERE (((テーブルA.点数)>=60) AND ((テーブルA.週塾日) Between #5/1/2009# And
#5/31/2009#));

427:名無しさん@そうだ選挙にいこう
09/10/30 19:38:01
Accessだけでメシ食えるの?

428:名無しさん@そうだ選挙にいこう
09/10/30 20:14:42
>>427
飯食っている人いるんじゃない?

俺は、バイトで作ったことあるよ。

429:名無しさん@そうだ選挙にいこう
09/10/30 20:22:45
けっこう中小では需要あるんね。
企業内で担当になっちゃう人もいるでしょ。

430:名無しさん@そうだ選挙にいこう
09/10/30 21:29:13
20年前はコボルで食ってたけど気がつけば今はAccessが飯の種になってるな

431:名無しさん@そうだ選挙にいこう
09/10/30 21:51:54
Accessってかなり作り込まないと実は使えないよな。

432:名無しさん@そうだ選挙にいこう
09/10/30 22:06:12
2週間もあれば1本作れる。

433:名無しさん@そうだ選挙にいこう
09/10/30 22:56:44
そんなにかかるのか?

434:名無しさん@そうだ選挙にいこう
09/10/30 22:59:58
頭は使うが工夫次第で工数はどんどん削減していける

435:名無しさん@そうだ選挙にいこう
09/10/30 23:41:09
>>433
業務で使うアプリはテストに時間がかかるからね。

436:名無しさん@そうだ選挙にいこう
09/10/31 22:13:44
アプリっていえるのかどうかビミョー

437:名無しさん@そうだ選挙にいこう
09/11/01 19:44:00
職場のシステムで出せる帳票が余りに使えないので、csvで落としたデータをAccessに取り込んで加工して帳票出してる。なんかまどろっこしい。

438:名無しさん@そうだ選挙にいこう
09/11/01 20:24:38
XP+ACCESS 2000です。
加工前データに入数マスタを当てて加工後データのようにしたいんですが、ひとつのクエリで加工できますか?

加工前データ
 品名、数
 A 、5
 B 、2

入数マスタ
 N0、品名、入数
  1、A 、2
  2、B 、3

加工後データ
 品名、数
 A 、2
 A 、2
 A 、1
 B 、2

できそうでできないんです・・・ひらめいた方はぜひ教えてください、よろしくお願いします!


439:名無しさん@そうだ選挙にいこう
09/11/01 20:57:41
>>438
総数5を入り数2で、2,2,1で分解、入り数未満はそのままっつーことだよな
その手の要件だったらVBAでレコードセット扱う感じじゃないかな。
クエリでできるんすかね。

>>437
可能な範囲でクエリ作るくらいじゃね?

440:名無しさん@そうだ選挙にいこう
09/11/02 10:08:54
>>438
439が書いているように、join の結果をVBAで処理するのが
いいような気がする(自分ならそうするけどね)

441:438
09/11/02 16:37:59
>>439
>>440
ありがとうございました、やはりクエリでは厳しいのでVBAでレコードセットを使ってやってみます。

442:名無しさん@そうだ選挙にいこう
09/11/02 18:59:53
Access2007の評判はどう?

443:名無しさん@そうだ選挙にいこう
09/11/03 00:06:24
>>442
MSの新作が糞なのは伝統ですよ。

444:名無しさん@そうだ選挙にいこう
09/11/03 13:29:17
なんかレポート印刷できない。
他のテキストはできるんだけど、内容が重いのかな?

445:名無しさん@そうだ選挙にいこう
09/11/03 15:44:55
日本語でおk?

446:名無しさん@そうだ選挙にいこう
09/11/03 20:59:42
>>444
プレビューはできんの?

447:名無しさん@そうだ選挙にいこう
09/11/03 22:39:04
プレビューは出来ます。
プリンターの性能が悪いのかな?

448:名無しさん@そうだ選挙にいこう
09/11/03 22:44:43
なら、複雑なレコードソースかレポートが複雑か(D系関数の多用とか)なんかで時間がかかるだけじゃないかな?

449:名無しさん@そうだ選挙にいこう
09/11/03 23:11:53
印刷完了する前にプリンターからエラーが出ちゃうんだ。
だからレポートの5分の1くらいしか印刷されない;;

450:名無しさん@そうだ選挙にいこう
09/11/04 08:07:48
プリンターからエラーがでるなら。スレ違い。

451:名無しさん@そうだ選挙にいこう
09/11/04 08:53:52
同じような経験で、プリンタのメモリを特注で増やしたが無駄だった
アクセスやプリンタとは無関係な、Windowsのプリンタのキャッシュみないななんたらの設定して解決した、詳しくは忘れた

452:名無しさん@そうだ選挙にいこう
09/11/04 10:26:25
>>449
いつの間にか直るケースもあるが、プリンタドライバ再インストールやWindowsUpdateなどで直るかも?
ちなみにページ数が分かっているなら何回かに分割してページ指定で印刷できたはず、最悪1ページずつ印刷・・・面倒だが。

453:451
09/11/04 10:50:34
思い出した、スプール フォルダ を空きのデカイドライブに移動した
数十ページ印刷すると直ぐにスプールが膨大になって止まる

454:名無しさん@そうだ選挙にいこう
09/11/04 12:08:36
あー
そんな話聞いたような

455:名無しさん@そうだ選挙にいこう
09/11/04 22:35:16
>>453
おお、印刷できた。ありがとう。

456:名無しさん@そうだ選挙にいこう
09/11/05 02:42:50
ID 野菜   料理
1 にんじん カレー
2 ピーマン サラダ
のテーブルがあるとする。ボックスを二つつくり、
 コンボBOX フィールドの絞込み、
 テキストBOX 検索用打ち込み
フォームを「検索」としてクエリを
select * from テーブル where forms!検索!コンボBOX
Like "*" & Forms!検索フォーム!入力 & "*";
とやっても何も出てこない。
forms!検索!コンボBOXの代わりに、
直接のフィールド名(「ID」「野菜」「料理」)に置き換えればうまくいく。
DoCmd.Requeryはしてるんだけど。
どうやったら良いか教えてください。

457:名無しさん@そうだ選挙にいこう
09/11/05 05:22:37
>>456
select * from テーブル where forms!検索!コンボBOX
Like ""*" & Forms!検索フォーム!入力 & "*"";
じゃないかなと。間違ったらゴメン。

458:456
09/11/05 07:17:21
>>457
select * from テーブル where forms!検索!コンボBOX
Like "*" & Forms!検索!入力 & "*";

とやってうまくいきませんでした。同じフォーム内です。
>.456はフォーム名表記ミスです。ごめんなさい。

459:名無しさん@そうだ選挙にいこう
09/11/05 09:26:10
>>458
>>457の書いたやつとそれ違う。
Likeのあとよく見れ。"が足りない。

460:名無しさん@そうだ選挙にいこう
09/11/05 13:11:58
>>456-459
シングルクォートじゃないとエラーになるんじゃないかな?

SELECT * FROM テーブル WHERE Forms!検索!コンボBOX
Like "'*" & Forms!検索フォーム!入力 & "*'";

あと、念のため実行時にForms!検索!コンボBOXとForms!検索フォーム!入力を
Debug.Printしてみてください。
.Textだけセットされていて、.Valueがセットされていないかもしれないので。

461:名無しさん@そうだ選挙にいこう
09/11/05 15:04:38
PG素人な質問ですいません。WORDのVBAから書き出した計算式をACCESS上で実行したいんですが
ACCESSのVBAって9万文字ぐらいの計算式実行できますか?

462:名無しさん@そうだ選挙にいこう
09/11/05 16:33:10
>>461
URLリンク(office.microsoft.com)

式を書き出してEval関数の引数に渡してみれ。
ググれないなら自分で試した方がはやいぞ。

463:名無しさん@そうだ選挙にいこう
09/11/05 18:52:54
>>456
> select * from テーブル where forms!検索!コンボBOX
「forms!検索!コンボBOX」はフィールド名にはならないよ。
あくまでフィールド名称を指す文字列になるだけで。
だから、Likeで比較してもフィールドの値とじゃなく、
フィールド名称を指す文字列と比較されているだけ。
具体的に書くと、「"野菜" Like "*hoge*"」とかに
なっているだけ。

自分にはうまい方法が思いつかないけど、VBAでSQL
入れ替えないとダメじゃないかという気はする。

464:名無しさん@そうだ選挙にいこう
09/11/05 20:20:47
>>463
コンボBOXのリストにフィールド名がセットされていればOK

465:463
09/11/05 21:25:06
>>464
ども。
試してみたけど、自分の環境だと検索されないんだよね。
列の値じゃなく、単なる文字列リテラルとの比較になっている
ようにしか見えないんだけど。

でもできる人がいるのであれば、>456 さんはできる人に教わる
のがよいのでしょう。
ということで、できない私は撤退します。汚してすまんかった。

466:名無しさん@そうだ選挙にいこう
09/11/05 21:54:17
>>457>>459>>460
レスサンクス。「"」追加してみましたが、駄目ですね。「'」も同じ。

Debug.Printしてみました。コンボBOXでID、テキストBOXで1を打ち込んだ後
?Forms!検索!検索BOX()
ID
?Forms!検索!入力()
1
と出るので、値は代入されているようです。
>>463
検証してみましたが、確かにフィールド名が死んでいるようです。
>>464
値集合タイプ フィールドリスト
値集合ソース テーブル
他は全てデフォルトのコンボボックスです。どうしたものですかね……。

467:名無しさん@そうだ選挙にいこう
09/11/05 23:25:09
>>466
BuildCriteriaで解析させてみては?
strFilter = BuildCriteria(Me.コンボBOX, dbText, "like *" & Me.入力 & "*")
strSQL="select * from テーブル where " & strFilter

468:名無しさん@そうだ選挙にいこう
09/11/06 02:22:44
そもそも、そのクエリ句はどこに適用させてるの?
フォームのレコードソースか何か?

469:名無しさん@そうだ選挙にいこう
09/11/06 09:15:58
質問

Access 2003 で、
同じmdbでも、通常版のアクセスではエラーにならないのに
ランタイム版ではエラーメッセージが出る場合があります。
コーディングで現在実行されているのが通常かランタイムかを知る方法はあるのでしょうか?



470:名無しさん@そうだ選挙にいこう
09/11/06 21:42:30
>>469
SysCmd メソッドのヘルプ嫁

471:名無しさん@そうだ選挙にいこう
09/11/06 22:57:46
thanx

472:名無しさん@そうだ選挙にいこう
09/11/08 08:09:54
>>469
どっかでみたような質問だな

473:名無しさん@そうだ選挙にいこう
09/11/09 04:52:30
>>467
レスサンクス。SQLをテキストに出すように組んでみた。
strFilter = "*" & Replace(Me.入力, " ", "* And *") & "*"
strFilter = BuildCriteria(Me.コンボBOX, dbText, strFilter)
strSQL = "select * from テーブル where " & strFilter
rs.Open strSQL, cn, adOpenStatic, adLockOptimistic, adCmdTableDirect
Set Me.Recordset = rs
For i = 0 To 2
Me.Controls("text" & Format(i, "0")).ControlSource = rs.Fields(i).Name
Me.Controls("lbl" & Format(i, "0")).Caption = rs.Fields(i).Name
Next
上手くいかない。二行目右のstrFilterをMe.入力に変えるとOKなので
ワイルドカードが原因みたい。出力の方法が悪いのかな?一つしか出せないし。
>>468
そです。そういう方法で考えてたのですが、
上手くいかないので上の方法に変えつつあります。

474:473
09/11/09 05:19:03
>>467
出来ましたー。
どうも
strSQL = "select * from テーブル where " & strFilter
がワイルドカードに対応していないみたい。
フィルターにしたらいけました。

475:467
09/11/09 06:13:00
>>474
んなーことない。Likeが抜けてるんじゃねか
まぁ解決したならべつにえーけどな

476:名無しさん@そうだ選挙にいこう
09/11/09 07:22:21
>>475
確かに、replace使い始めてからlike忘れてます。
ワイルドカードというよりは、「'」と「"」がいりこんでいると駄目なのかもしれません。
SQLは""で囲むので、「'」に置き換えてみたりしたのですが。

>>473
だと一つしか出力できないです。フィルタのように、
複数当てはまる場合に複数出力するにはどう書いたら良いですかね?
これも上手くいかなかった原因のような。


477:名無しさん@そうだ選挙にいこう
09/11/09 17:03:02
dim a,b as integer でbのデータ型が違うと怒られた。

dim a as integer
dim b as integer
だと怒られない。

なんでですか?


478:名無しさん@そうだ選挙にいこう
09/11/09 17:07:15
dim a,b as integer

これは

Dim a As Variant
Dim b As Integer

と等価だから

479:名無しさん@そうだ選挙にいこう
09/11/09 17:15:46
>>478
そうなの?
bがintegerなら怒られないはずなのに…

480:名無しさん@そうだ選挙にいこう
09/11/09 17:18:46
>>478
URLリンク(www.geocities.jp)
ここに書いてありますね。bで怒られたのはおいらの勘違いかもしれない。
ありがとう。

481:名無しさん@そうだ選挙にいこう
09/11/09 18:39:40
>>477
文法が間違っています。

Dim a As Integer
Dim b As Integer
と等価なのは…
Dim a As Integer, b As Integer
です。

ちなみに、
Dim a, b As Integer
と等価なのは…
Dim a As Variant, b As Integer
ですね。

482:名無しさん@そうだ選挙にいこう
09/11/09 18:47:01
>>481
ありがとうございます。勉強になりました。
市販のmdbファイルに書いてあったのを真似していました。
件のmdbファイルをよく調べてみます。プログラマーが間違えていたら面白いなw


483:名無しさん@そうだ選挙にいこう
09/11/10 02:03:50
Vista / access2007環境
PC数台のLANで管理者だけがデータの登録・更新が可能で
一般ユーザーは特定のデータのみを閲覧できる共有システムを作ることになりました。
accessのみで構築しようと思ったのですが、調べるうちにセキュリティに不安がでてきました。

ユーザー単位のデータの隠ぺいは可能なのか?
直接データベースファイルを開かれたら? などの心配があります。

インターフェース部をVBA制御してデータベースは暗号化しておくと出来そうな感じですが
そもそもそんな事が出来るのかさえわかりません…。

ACCESS2007のみで組む場合に気をつける点など教えてください。

※管理者のPCのみaccess2007で他はランタイムを考えています。



484:483
09/11/10 02:19:22
あ、インターフェース部を共有フォルダに置いてデータベースファイルをローカルフォルダに置けば
セキュリティ的に良いような気がしてきました・・
連投すんません。

485:名無しさん@そうだ選挙にいこう
09/11/10 02:50:07
それは(--;)

486:名無しさん@そうだ選挙にいこう
09/11/10 03:04:39
テーブルのみ分離したデータ.mdbのみを共有フォルダに置き、一般ユーザーには閲覧のみできるクエリで作ったインターフェース用.mdeを配布とか。ただし、accessではちと荷が重いけどね。

487:名無しさん@そうだ選挙にいこう
09/11/10 04:00:29
>>483
分割してバックエンドaccdbはパスワードで縛る必要があるわな。
でもってフロントエンドaccdeでリンクテーブル使う方法もありだが、
これってセキュリティレベルは超低い。ちょっと分かる人であれば書き込みが可能。
もう少し縛るなら、リンクテーブル使わない方法でフロントエンドを作るしかないべな。
あとはユーザ管理の機能がないから、自前でUI制御するくらいか。
セキュリティ気にするならSQLserver使うべきなのだが、accessでも似たようなことが
できなくもない。まぁ限界があるってこと。

488:名無しさん@そうだ選挙にいこう
09/11/10 10:14:40
>>483
拡張子である「.mdb」を取っちゃうという手もある。
こうするとぱっと見ではACCESSだとわからない。(プログラムからは普通に繋がる)
まあファイルをオープンすると同じフォルダにldbファイルが出来ちゃうから詳しい人には
わかってしまうけど・・・。
セキュリティの問題はどこまでやれば安全ってのがないからね。
相手が本気で色んな知識や技術を修得してきたらそれなりの対処をしていてもクラック
されてしまうだろうし。(例えば誰もいない時や一瞬の隙をついて個人のPCからデータ
抜き出したりとかデータロガーでログインパス取得したりとかやり方はいくらでもある。)
「完璧なセキュリティは無理です」ってことを言っといたほうがいいと思う。
あっ、でもデータ分けるとかmdbにパスワード付けるとか一応のことはしとくべき。そうすれ
ば何かあった時もセキュリティ的な対策はしていたということを主張できるし。

489:488
09/11/10 10:18:16
>>483
書き忘れたけどmdbを置く共有フォルダを隠し共有に設定しておくのもオススメ。
地味な方法も組み合わせると結構効果あるよ。

490:483
09/11/10 12:11:35
ご教授ありがとうございます。
まだまだ知識がないので
教えてもらったことを調べていきたいと思います。

ネットワークシステムやセキュリティ云々を言うなら
ACCESSのみで組むべきじゃない感じですね。
こういう低予算かつ極小のシステムってどういう構成がいいんだろう
ACCESS+MySQLなどでしょうか…
ACCESSにユーザー管理の機能があったらすごく楽なのにと思います。

491:名無しさん@そうだ選挙にいこう
09/11/10 19:19:18
>>483
フロントエンドをAccessで考えるなら、SQL Server Express Edition と
組み合わせるのが無難と言えば無難かなぁ。Express Editionなら無償だしね。

492:483
09/11/10 20:48:43
SQL Serverに無償のEditionがあったんですね!
零細には手が出ない代物と思ってました…
ACCESSのみだと複雑でイレギュラーなテクニックが必要になりそうなので
データベースをSQL Serverにする構成で取り組んでみます。
ありがとうございました。


493:名無しさん@そうだ選挙にいこう
09/11/10 21:13:00
M$-SQLserverなんかで組むんならPHP+PostgreSQLで組んじゃうな。ちょっとハードル高いぞ。

494:名無しさん@そうだ選挙にいこう
09/11/10 21:24:19
印刷物とかどうすんの

495:名無しさん@そうだ選挙にいこう
09/11/10 21:28:41
tcpdfでやってるよ。かなりハードル高いぞ。

496:483
09/11/11 17:35:31
>>487
>分割してバックエンドaccdbはパスワードで縛る必要があるわな。
>でもってフロントエンドaccdeでリンクテーブル使う方法もありだが、
>これってセキュリティレベルは超低い。

遅レスすみません。
これってリンクテーブルだとaccdbへの接続パスワードがハックされやすいからですか?


497:名無しさん@そうだ選挙にいこう
09/11/11 19:19:34
test

498:名無しさん@そうだ選挙にいこう
09/11/11 19:25:18
失礼しました、質問です。
アクセス2007を所有しております。
教えていただきたいことはまず、、以下の内容のものはつくれるかどうかで、
どのようなテーブルを作っていくべきか助言が欲しいのです。

・何がしたいか → マンション、アパートの管理データベース
■各住宅の入居者の情報
世帯主以外にも同居者の情報も含ませる(生年月日[年齢]、性別、収入など)
住宅は退去などにより空きが出る→新しい入居者が入ることもある。
■指定した期日以前などについて年齢、入居者数などの集計はとれるか(指定した期日なので年齢がさかのぼることもある)



499:名無しさん@そうだ選挙にいこう
09/11/11 21:19:23
できるよ

500:名無しさん@そうだ選挙にいこう
09/11/11 21:32:17
>>499
ありがとうございます。まだ必死に基本書読んでる段階ですが、がんばります。。

501:名無しさん@そうだ選挙にいこう
09/11/11 21:38:27
>>498
生年月日さえわかれば年齢は計算で出る。遡る事も可能。
マン管DBだけど住民基本台帳みたいなDBつくればいいよ。

502:名無しさん@そうだ選挙にいこう
09/11/11 22:35:37
>>498
その程度なら片手間でも作れるくらい簡単だよ。

肝になる部分は少ないから。平たいDBだね。

より複雑な計算をしてってならべつだけれど、その程度の管理なら
エクセルでもやってやれなくない。



503:名無しさん@そうだ選挙にいこう
09/11/11 22:56:43
まあ、それが初めてのDBなら難しいと思うよ。経験者は色々いうけど、とにかくやってみなよ。いろいろわかるのはそれからで十分さ。

504:名無しさん@そうだ選挙にいこう
09/11/11 23:07:52
Access でセキュリティというと、 MDW を使えば充分だと思うんだが、これじゃダメなのか?


505:498
09/11/11 23:24:05
みなさんありがとう。テーブルを考えるだけでかなりかかりそうだ・・・

506:名無しさん@そうだ選挙にいこう
09/11/12 00:01:49
>>498
例えば、こんな感じのテーブルになる。
想像で適当に書いたので参考までに、あしからず。

テーブル
住宅: <住宅ID(オートナンバー)>, 住所, 物件名
住宅部屋: <住宅ID, 部屋番号>
住宅入退: <住宅ID, 部屋番号, 住宅入退ID(オートナンバー)>, 入退区分{入居|退去}, 入退日
住宅入居者: <住宅ID, 部屋番号, 住宅入退ID, 入居者ID(オートナンバー)>, 世帯主{Yes|No}, 氏名, 生年月日, 性別{男|女}, 収入
*<>が主キー。

リレーションシップ
住宅(住宅ID) 1-多 住宅部屋
住宅部屋(住宅ID, 部屋番号) 1-多 住宅入退
住宅入退(住宅ID, 部屋番号, 住宅入退ID) 1-多 住宅入居者

・指定日の空き部屋状況は、住宅部屋と住宅入退(入退日が指定日以前かつ最大のもの)を左結合(LEFT JOIN)して、
 入退区分が入居なら入居中、それ以外(NULLか退去なら)なら空き。
・{入居時 or 退去時}の年齢は「入退日-生年月日」で求められる。
・指定日の集計に関しても上の条件のクエリを元に求められる。
・ポイントは入居と退去の履歴(日付)を残しておいて、それを条件に抽出すること。年齢は生年月日を元に求めること。

似たような案件のデータベースのサンプルを探してみて中身がどうなっているか調べてみるといいよ。
後は今ある入力データを正規化してみるとか(「正規化」の手順は調べればすぐ分かる)。
まあ、頑張ってみてくださいな。

507:名無しさん@そうだ選挙にいこう
09/11/12 00:41:46
>>504
たぶんAccess2007で廃止(ただしネイティブフォーマットのaccdb)されたからじゃね?
>483 は2007らしいから、こういう流れになったかと。

2003までなら、ユーザーレベルセキュリティふつうにできるけどな。
Accessの手頃感が突出しすぎてユーザ動かないんで、SQL鯖への追い出しにM$も必死w

508:名無しさん@そうだ選挙にいこう
09/11/12 07:22:03
>>506
ご丁寧にありがとうございます。
早速参考にさせてもらいたいと思います。正規化についても調べてみます!

509:名無しさん@そうだ選挙にいこう
09/11/12 07:22:38
>>506
さらに正規化するとすれば

入退区分{入居|退去}

入退区分:<入退区分ID(オートナンバー)>,入退区分(テキスト)

性別{男|女}

性別:<性別ID(オートナンバー)>,性別(テキスト)

住宅:<住宅ID(オートナンバー)>,;住所,物件名
住宅部屋:<住宅ID,部屋番号>
住宅入退:<住宅ID,部屋番号,住宅入退ID(オートナンバー)>,入退区分ID,入退日
住宅入居者:<住宅ID,部屋番号,住宅入退ID,入居者ID(オートナンバー)>,世帯主{Yes|No},氏名,生年月日,性別ID,収入

510:名無しさん@そうだ選挙にいこう
09/11/12 10:06:56
まあ、世帯主なんかも正規化の対象か。

511:487
09/11/12 12:03:59
解除ktkr
>>496
リンクテーブルの場合
1.パスワードが平文で格納されてるから、特別なツールを必要とせずまる見え
2.フロントエンドaccdeに向けてODBC/ADO等で接続すると、フロントエンドが
接続を代行するような振る舞いをする。
まぁフロントエンドもパスワード暗号化なりすりゃいいのだけれど。
使用環境、セキュリティ、開発難度のバランスを取って製造ということ。
社内で小規模というのであれば、性善説前提+データ保全目的のセキュリティ
構成もありだと思う。
損することはないから、MSSQLServer/MySQLなど着手するならしちゃった
ほうがいいかもね。

512:名無しさん@そうだ選挙にいこう
09/11/12 13:27:57
どうでもいいがDBで管理しなきゃいけないほど大量のアパートマンション保有とか
どんだけ資産家なんだよ

513:名無しさん@そうだ選挙にいこう
09/11/12 13:35:02
資産家って思うかねw。可能性がないわけじゃないけど。

514:483
09/11/12 16:57:07
>>511
パスワードが丸見えとかちょっとひどいですね・・

素直にSQLServer使います。
ありがとうございました。


515:名無しさん@そうだ選挙にいこう
09/11/12 18:50:23
>>514
がんがれ

516:名無しさん@そうだ選挙にいこう
09/11/12 23:12:47
>>515
甘やかすなよ。おまえの甘やかしは
そいつのためにならないだろ。

517:名無しさん@そうだ選挙にいこう
09/11/13 09:24:07
>>516
励ましてやる方が伸びる子もいるのだよ。

518:498
09/11/13 15:36:59
>>506
何から何までありがとうございます。
試しにやってみました。データ型について怒られまくってます。初歩の初歩の段階…。

住宅情報(建設年度 管理戸数 部屋面積など)
入れるのを忘れました。
>>506さんの書いてくれたレス印刷して持ち歩いてます。頑張ります。

ネット上に住宅管理のサンプルって中々見つからないものですね

519:名無しさん@そうだ選挙にいこう
09/11/13 21:17:01
次は、何を「れるの忘れました」って言うんだろうなw

520:名無しさん@そうだ選挙にいこう
09/11/14 00:01:29
物件管理だけならともかく、住民台帳みたいな情報まで網羅する必要があるって
どんな業種なんだろうな

521:名無しさん@そうだ選挙にいこう
09/11/14 01:33:10
>>519
サーセン

基本書熟読します

522:名無しさん@そうだ選挙にいこう
09/11/14 22:59:08
検索した結果が、.foundfiles()に格納されています。
For i = 1 To .FoundFiles(i).count
Me.[text1] = .FoundFiles(i)
Next i
とやれば、当然、text1には .FoundFiles(i)の最後の値がはいってしまいますよね。

1.text1の1を i (変数)に変更して順番に格納したいですが、どう書けば良いですか?
 text1,text2,text3,text4,text5と、フィールドは用意しておきます。

2.絞込みクエリのように、数に応じてフィールドが自動生成する方法ありますか?
上と異なり、フィールドは事前に作成しません。これは出来るかどうかわかりませんが……。

よろしくお願いします。

523:名無しさん@そうだ選挙にいこう
09/11/14 23:26:42
>>522
1. Me.Contorls("text" & i) みたいな感じで
2.CreateControlでコントロール追加とか、ListBoxを使うとか、レコードセットにしてデータシートビュー


524:名無しさん@そうだ選挙にいこう
09/11/14 23:27:58
ACCESSでソフト作っている人多いんでしょうか。

525:522
09/11/14 23:41:14
1.の代入は出来ました。

2.のクエリ風に絞込みは不明ですので
方法あったら教えてください。debugplintの結果を
セルに出力するようなイメージです。

526:名無しさん@そうだ選挙にいこう
09/11/14 23:58:46
>>523
レスサンクス。入れ違いになってしまった。

レコードセットにしてデータシートビューに挑戦してみます。
結果をテーブルに出力して、データシートビューにするような感じですかねえ。
探してみますが、もし参考になるサイトあれば教えてください。

それで駄目ならCreateControlですかね。
これは、フィールド名が増えると恐ろしいことになりそうな気がします……。

527:名無しさん@そうだ選挙にいこう
09/11/15 00:09:50
>>524
Accessでソフトウェアをつくって、公開している人ってのは、多分少ない。
ましてや、それでシェアウェア作って売っているとなると、限られる。

けれど、業務の現場では数多くのAccessで作られたアプリケーションが
仕事をしている。

表に出てこない作り込みのソフトウェアがね。あとは、VBなどのバックエンド
にデータの置き場としてmdbを使っているようなツールとかね。テーブル設計
をAccessで行って、VBで仕込む。

528:522=525
09/11/15 00:44:21
>>523
2のレコードセットにしてデータシートビューで出来ました。
我流ですが。あらかじめテーブルを作っておいて、
ADOで
1.テーブルの中身を全部削除
2.テーブルに結果を代入
3.フィールドとして表示
相当強引な気がしますが、こんな感じなんですかねえ。

529:名無しさん@そうだ選挙にいこう
09/11/15 03:04:37
テーブルに、絶対パスでwordファイルのアドレスが入っています。
(ハイパーリンクなので#が両端についているかも)

このアドレスを渡して、帳票形式になっているフォーム上で
OLE表示させたいのですが、VBでどう書けば良いですかね?


530:名無しさん@そうだ選挙にいこう
09/11/15 03:29:19
Access2007 + ADO + Postgresでいろいろ試しているのですがうまくいかないところがあります。

コンボボックスの選択肢としてPostgresから持ってきたデータを使おうとしているのですが、
選択肢の表示と選択した後の表示としては二番目の文字列の列を表示させ、
実際の値としては一番目の数字列を入れたいと考え、
値集合のタイプはテーブル/クエリ、列数は2、連結列は1、列幅は0cm;3cmとしました。

この設定の状態でフォームのロードイベントの部分でID列と名称列の二つの列をもつRecordsetをセットしたのですが、
実際に動かしてみると、選択肢を表示させる事は出来るのですが、
実際に選び終わると選択した物が入らずに消えてしまいます。
何か設定がおかしいのでしょうか?

ちなみに上記の設定とコードのまま、コンボボックスをコントロールの種類の変更で
リストボックスにした場合は普通に選択肢として表れ、選ぶことも出来ます。

また、フォームのプロパティの細かい部分はそのままに、
プロパティから値集合ソースとして同じテーブルをリンクテーブルにした物を設定した場合は期待通りに動作します。

何が原因なのでしょうか・・・

531:529
09/11/15 03:32:55
アドレスにハイパーリンクが入っています。
ファイルはテーブルに存在しますが、元は空欄です。

Dim path As String
path = Replace(Me.アドレス, "#", "")
With Me.ファイル
.Class = "Word.Document.8"
.OLETypeAllowed = acOLELinked
.SourceDoc = path
.Action = acOLECreateLink
End With

とやって、カレントテーブルは上手く表示できましたが、
絞込みで表示されている他のテーブルは、選択するまで
表示されないままです。いい方法ありますか?

また、OLEオブジェクト内でword文書は先頭しか見えません。
スクロールさせる方法があれば教えてください。

532:820
09/11/15 06:24:11
>>518
お役に立っているのなら嬉しいです。が、ごめんなさい。>>506 は間違えていました。
>>506 の訂正です(考え直したら、入居と退去は必ず対になるので、下記の方が作るのは簡単です)。

テーブル:
×住宅入退: <住宅ID, 部屋番号, 住宅入退ID(オートナンバー)>, 入退区分{入居|退去}, 入退日
○住宅入退: <住宅ID, 部屋番号, 住宅入退ID(オートナンバー)>, 入居日, 退去日

×・指定日の空き部屋状況は~
○・現在の部屋の入居状況は、住宅部屋が退去日 IS NULLの住宅入退を子に持つなら入居中。それ以外なら空きとなる。

・指定日に入居していた世帯(住宅入退ID)を知りたい場合は下のようなクエリ(SQL)を使う。
SELECT 住宅ID, 部屋番号, 住宅入退ID
FROM 住宅入退 t1
WHERE EXISTS (
 SELECT 住宅ID, 部屋番号
 FROM 住宅入退 t2
 WHERE t1.住宅ID = t2.住宅ID and t1.部屋番号 = t2.部屋番号 and t2.入居日 <= [指定日] and (t2.退去日 IS NULL OR [指定日] < t2.退去日)
 GROUP BY t2.住宅ID, t2.部屋番号
 HAVING MAX(t2.入居日) = t1.入居日)

ついでに今回の変更で入居期間も「退去日-入居日」
(例えば Access だと「DateDiff("m",入居日,退去日)」で月単位の期間)で求められます。

既にデータ入力していたら、ごめん。後は本や Web を参考にやってみてください。

533:506
09/11/15 06:26:08
名前間違えた。>>532=506 です。

534:名無しさん@そうだ選挙にいこう
09/11/15 06:44:37
>>530
リンクテーブルで上手くいくなら
CurrentProject.Connection を使ってリンクテーブル経由で Recordset を開いてみては?

または下のようにローカルで動作するようにプロパティを設定したものを使った場合でもダメかな?
Dim p As New ADODB.Recordset
p.CursorLocation = adUseClient
p.Open source, con, adOpenStatic, adLockReadOnly, adCmdText
Set p.ActiveConnection = Nothing
Set ComboBox1.Recrodset = p

535:名無しさん@そうだ選挙にいこう
09/11/15 07:20:28
>>528
テーブルを使わずに

Dim p As New ADODB.Recordset
p.Fields.Append "列1", adVarWChar, 256
p.Fields.Append "列2", adVarWChar, 256
p.Open , , , adLockOptimistic
p.AddNew Array(0, 1), Array("1", "A")
Set Me.Recordset = p

という手もあるよ。
解説されているのをあんまり見たことがないので、どこまでサポートされているかは知らないけど。

536:名無しさん@そうだ選挙にいこう
09/11/15 08:41:00
>>527

> けれど、業務の現場では数多くのAccessで作られたアプリケーションが
> 仕事をしている。

このパターンが多いんですね。ありがとうございます。

> 表に出てこない作り込みのソフトウェアがね。あとは、VBなどのバックエンド
> にデータの置き場としてmdbを使っているようなツールとかね。テーブル設計
> をAccessで行って、VBで仕込む。

私的プログラムでデータの管理をどうしようかと思っていたのでアクセスを利用したいと思います。

537:528
09/11/15 12:33:42
>>535
レスサンクス。
>>528の方法だと、検索するたびに、レコードが削除されました
のエラーが出てしまい、使い物になりませんでした。
フォームを開きなおすときちんと表示されるので、削除した分が
フォーム開きなおすまでレコードの位置情報のみ残っているっぽいです。

Dim p As New ADODB.Recordset
p.Fields.Append "アドレス", adVarWChar, 256
p.Open , , , adLockOptimistic
Set Me.Recordset = p
For i = 1 To .Files.Count
p.AddNew Array("アドレス"), Array(".Files(i)")
p.Update
p.MoveNext
Next i
p.Close: Set p = Nothing
こう書いてみましたが、アドレスには何も入ってません。
フォームにはダミーとして、"アドレス"のフィールドのみ存在する
テーブルを参照先にいれてあります。これが原因かもしれませんが。

538:537
09/11/15 12:38:47
ダミーの参照をやめて名前だけにしてみましたが、
やはりデータが入っていないようです。
困ったなあ。

一度フォームを閉じて開きなおすように組めば>>528でも
実用できるようですが、明らかに無駄ですよね。

539:名無しさん@そうだ選挙にいこう
09/11/15 13:29:50
>>507
>(MDWは) Access2007で廃止(ただしネイティブフォーマットのaccdb)された

ほんとか?

MSのHPでは使えると書かれているぞ。

URLリンク(office.microsoft.com)

540:530
09/11/15 15:45:06
530です

>>534
リンクテーブルを経由すると作成の趣旨からはずれてしまうので、
その方法を使用することができませんです。

二番目に挙げていただいたプロパティ値でやってみましたが
挙動は特に変わらず、選択後に消えてしまいます。

541:535
09/11/15 17:37:49
>>538
順序を変えてみて。
データを追加→フォームに設定の順。
For i = 1 To .Files.Count
 p.AddNew Arrary("アドレス"), Array(.Files(i))
Next
Set Me.Recordset = p

あと、データシートに使うフォームにはコントロールソースを「アドレス」にした、
テキストコントロールを配置しているよね?

あと、テーブルを使う場合でも、
削除する前に一旦レコードソースを空白にすればエラーはでなかったと思う
(データ追加後に再設定する)。間違ってたら、ごめん。

542:534
09/11/15 18:39:09
>>540
Provider を Microsoft.Access.OLEDB10.0 に変更。
Data Provider を PostgreSQL OLE DB Provider にしてみてもダメかな?

[ACC2002] Recordset のプロパティを設定すると、コンボ ボックスに値が表示されない
URLリンク(support.microsoft.com)

それでもダメなら、値集合タイプをを値リストにして文字列で設定するとか。
ComboBox1.RowSource = recordset.GetString(adClipString, ,";",";")

No4734.コンボボックスのRecordsetにADOのRecordsetを使う方法・・・
URLリンク(www.accessclub.jp)

543:507
09/11/15 18:50:22
>>539
そのページは誤解しやすい表現になってるので勘違いするのも無理ないけど。
こっちの方がはっきり書いてある。

URLリンク(office.microsoft.com)

2007のネイティブフォーマットはユーザーレベルセキュリティをサポートしない。
MDWは互換性のために残しているけど、MDBのまま2007形式に移行しない
場合でないと使えない。
だから
>>(MDWは) Access2007で廃止(ただしネイティブフォーマットのaccdb)された
と書いた。


544:名無しさん@そうだ選挙にいこう
09/11/16 12:08:03
>>532
たくさんの情報ありがとうございます。試しにデータは入れてみてますがまだ全然理解してない
状況ですので問題ないです。。
主キーを複数設定するところですら焦ってますし、男女の選択をどうするか、同居してる人が個別に入ったり出たりするので
その辺りも考慮してやってみようかというところです。

部屋番号を「棟」と「号」に分けることくらいしかまだ自分にはアレンジができないのでまずは住宅の
テーブルだけ完成させてみたいと思います。

どこかにサンプルファイルって落ちてたりしないんでしょうか。

545:名無しさん@そうだ選挙にいこう
09/11/16 15:58:10
Windows 7上でAccess 2007や2003がちゃんと動くかどうかという情報って
どっかに出回ってないすか?
ざっとググッた限りだと、以下の記事しか見つからなくてやや心配…
URLリンク(vive-hodie.com)

546:名無しさん@そうだ選挙にいこう
09/11/16 18:32:35
>>545
Microsoft Office 製品に関する Windows 7 の対応状況
URLリンク(www.microsoft.com)

我が家の Access 2003 は特に問題が出たことはなし(ローカル環境のみだけど)。
>>545 の記事は Windows 7 RC版だったからか、何か他の原因じゃないかな。

547:名無しさん@そうだ選挙にいこう
09/11/16 22:05:54
初心者なんですが教えて下さい。Access97でテーブルにデータ値が無い場合0を表示させたいんですが、どうすればいいんですか?



548:名無しさん@そうだ選挙にいこう
09/11/16 22:14:43
>>547
表示だけでいいなら、書式プロパティに「0」と設定するとか。

549:名無しさん@そうだ選挙にいこう
09/11/17 00:43:57
テーブルデザインにして
フィールドのプロパティ → 規定値0 でもおk

550:538
09/11/17 07:25:37
>>541
順番変更でばっちりでした。ありがとうございます!

参考に教えてください。
レコードソースを空白にするってどう書けば良いんですかね?
レコード削除はわかるのですが。レコード削除だとエラーでます。
'Do Until rs.EOF
rs.Delete
rs.MoveNext
Loop
とか、
 SQL = "delete from テーブル"
 DoCmd.RunSQL SQL
だと駄目ですね。

551:545
09/11/17 10:44:08
>>546 ありがとうございます
なるべく早くWindows 7入手して
自分でも動作確認するようにします

552:名無しさん@そうだ選挙にいこう
09/11/17 11:56:35
>>548
>>549

ありがとうございます。やってみます!

553:名無しさん@そうだ選挙にいこう
09/11/17 12:00:28
sharepoint foundation2010にaccess serviceがねぇよぉ;;
Runtimeの代わりになるとwktkしてたのによぉ

554:名無しさん@そうだ選挙にいこう
09/11/17 19:27:31
Access97を現役でまだ使ってる人いるの?
マイクロソフト喜びそうだな

555:トリプルクリック ◆M4VDFNZnqs
09/11/17 19:31:30
>>554
早く新しいの買えって思ってるんじゃないかな

556:名無しさん@そうだ選挙にいこう
09/11/17 21:29:48
>>554
余裕でいる。
2.0ですら、まだ話聞くし。

M$はまったく喜ばないと思うが。

557:名無しさん@そうだ選挙にいこう
09/11/17 22:33:33
少しずつですが作り始めました。気になったのは住宅ごとではなく、棟や詳細(部屋単位)で違うものがあるということです。
同じ住宅でもお風呂の設置の有無がある住宅があるので変なところに風呂フィールドがあります。
また、住宅台帳の管理戸数は棟別管理戸数の詳細ということになるので、なんか二度手間な感じがします。
私の作り方がおかしいのでしょうか。まだ主キーやらリレーションシップはほぼつけてない状態です。
私は最初から細かく作ろうとしすぎてるのでしょうか・・



<>は主キー

住宅台帳マスター
<住宅ID(オートナンバー)>,住宅名(テキスト),郵便番号(テキスト),住所(テキスト),管理戸数(数値),給水(テキスト),ガス(テキスト),便所(テキスト),駐車場有無(テキスト)

棟別台帳マスター
棟ID(テキスト),住宅ID(数値),棟名(テキスト),建設年度(テキスト),種別(テキスト),構造階数(テキスト),管理戸数(数値)

部屋別台帳マスター
部屋ID(テキスト),住宅ID(数値),棟ID(テキスト),号室(テキスト),間取(テキスト),間取詳細(テキスト),風呂(テキスト),備考(テキスト)

558:名無しさん@そうだ選挙にいこう
09/11/17 23:47:34
もしかして街の不動産屋さんじゃなくてどっかの公団の管理人とかなの?

559:名無しさん@そうだ選挙にいこう
09/11/18 00:17:31
以前似た事聞きましたが、adoが上手くいかないので教えてください。
Dim rs As New ADODB.Recordset
Dim cn As ADODB.Connection

Set cn = Application.CurrentProject.Connection
rs.Open Me.RecordSource, cn, adOpenKeyset, adLockOptimistic

Dim sFilter As String
sFilter = "*" & Replace(Me.BOX1, " ", "* And *") & "*"
sFilter = BuildCriteria(Me.BOX2, dbText, sFilter)
rs.Filter = sFilter
このrs.fillterが上手くいっておらず、rs.filter=0になります。

Me.filter=sFilter
Me,filteroN =true
なら上手くいきますが、rsからデータ取りしたいのでこの方法は使えません。
BOX1で絞り込んで、BOX2で更に絞り込む
レコードセットに対するフィルターのかけ方を教えてください。

560:名無しさん@そうだ選挙にいこう
09/11/18 01:12:07
>>559
ADOだよね。
おおかた文字列を二重引用符でくくってんじゃね?
くくるなら一重引用符(単一引用符)。
FIlterプロパティのヘルプを読めばすぐに分かるので、
読んでないんだろうけど、困ってんならヘルプくらい嫁。
URLリンク(msdn.microsoft.com)

561:名無しさん@そうだ選挙にいこう
09/11/18 01:58:08
>>557期待を裏切らずいろいろ後だしでくるなw

562:名無しさん@そうだ選挙にいこう
09/11/18 02:20:05
んなもんにかまってられんわ。寝る。

563:535
09/11/18 02:42:31
>>550
レコードソースを空白にするのは
テーブル/クエリなら
Me.RecordSource = ""
レコードセットなら
Set Me.Recordset = Nothing
とするだけ。

要はフォームとの関連を一旦切ってその後に処理する。
フォームがちらつくのが気になるなら処理の前後を Me.Painting で挟めば良い。
Me.Painting = False
Me.RecordSource = ""
DoCmd.RunSQL "DELETE FROM テーブル"
Me.RecordSource = "テーブル"
Me.Painting = True

あと、そもそもスナップショットにしておけばレコードソースの状態を監視したりしないので、
問題なかったような気がする(DELETE クエリを発行した後、Me.Requery を使って手動で更新)
……違うかも。

564:名無しさん@そうだ選挙にいこう
09/11/18 03:01:48
>>557
部屋毎に風呂の有無が異なるのなら、部屋に風呂フィールドが入るのが自然。
データの繰り返しや重複がある場合が不自然。詳しくは正規化を勉強してみて。
管理戸数については集計関数(カウント(COUNT), 合計(SUM))を調べてみれば良いかも。

最初は試行錯誤しながら作っていくしかないよ。
自信がないのなら練習用にデータベースの作り方が載っている本を買ってきて、
一度通して作ってみると良い。それで、Access で何が出来て、何が出来そうにないかが分かると思う。

565:名無しさん@そうだ選挙にいこう
09/11/18 07:00:13
>>561
ほんとに申し訳ないことです。入門じみた質問ばかりになってるのは自分でも分かってます。ご免なさい

できるシリーズ熟読しながら作ってる段階です

エクセルワードと違って、アクセスはほんとに情報少ないですね。


566:メモリ君 ◆7mDj3mSGOQ
09/11/18 07:21:30
>>565
それは大きな勘違いだ。

Accessの情報も十分ある。ただ、君がこの世界のルールを知らないで入っている
に過ぎない。この世界は、WordやExcelと違って、テーブル設計や正規化、外部キー
やクエリといった数々の決まり事がある。

そして、多くの人間が挫折するのは、これら決まり事 つまり、理論を勉強せずに
飛び込んでいきなり実践のデータベースを作ろうとするからなのだ。まずは、実践とは
別に、簡単なデータベースでしっかり基礎を勉強してから、少しずつ、クエリの活用法
だとか、テーブルの設計方法を勉強するのがデータベースの肝。

はっきりいって、GUIやVBAなんてのは、一番後にやるもんだ。そして何よりも、情報を
小出しにしている段階でテーブル設計はこけている。

567:名無しさん@そうだ選挙にいこう
09/11/18 18:36:13
>>557
初心者が最初から全体を作ろうとしても難しいと思う。
小さい部分から徐々に作って試していった方が実力に合うレベルで考えられるし、自信も持てるよ。

例えば、入居者の統計を取るのが目的なら、入居者のテーブルだけを作ってみる。
それを使って年齢、性別毎の人数や収入の平均を求める集計クエリを作ってみる。ある期間の入居者一覧のクエリも作成してみる。
それが出来たら、部屋のテーブルを作ってみて、棟毎の戸数の集計クエリを作ってみる。
それが出来たら、入居者と部屋をリレーションシップで結んでみる。必要なら正規化をやり直す。
それを使って、部屋毎の入居者の集計クエリを作ってみる……みたいに問題を小さく分けて、少しずつやってみた方が良いと思う。

あと、クエリの使い方が分かれば、ある条件で絞り込み・集計するにはどんなデータが必要か?
という視点でも考えられるようになるので、設計の正否を判断する手がかりが増えるよ。

568:名無しさん@そうだ選挙にいこう
09/11/18 19:22:45
>>557
私もちょっと必要なので、Accessを始めたところです。
557さんも、ワークシートとデータベースの違いの「イメージ」をつかめて
いないような気がします。
データベースも、「カード型」と、リレーション型があります。
カード型のイメージと、ワークシートのイメージは似ています。
カード型・ワークシートは、「一目で見わたせる」感じですが、
リレーション型のデータベースは、「シートの奥行き」がある感じです。
エクセルでも「くし刺し処理」みたいな物がありますけど、あの感じです。
しかし、「同じもの」が奥行きになっているのではないんです。
リレーション型は、「データの特徴をつかんで、なるべくまとめてしまう」のが、「なんでも
広げて一覧にする」ワークシートとは違っているんです。
ワークシートは、個数と単価と合計が一覧になりますけど、リレーション型である
Accessは個数と単価だけが「テーブル」に入り、合計は、「クエリ」でその都度計算し、
「フォーム」で表示し、「レポート」で印刷するんです。
住宅IDとそれが「属する棟」の番号のテーブルがあれば、「管理個数」は「クエリ」で
その都度計算するんです。
お風呂の有無は、その前に間取りのパターンを数え上げて番号を付け、どの番号の
間取りかの情報をテーブルにもたせて、どんな間取りかの表示はその都度クエリやフォームで
作り出すんです。
お風呂の有る無しに何か特別意味があるのであれば、その情報はtrue falseなどの情報として
テーブルにもたせることも出来ます。

なにか、基本的な発想が、リレーション型のデータベースのイメージをつかまないままExcel
的に考えてるようにお見受けしました。
私はAccessがいちいちクエリだのレポートだのと「場面を変えて作業」する意味合いが
難しいです。
SQL文で表示も問い合わせも順番に全部書くってやつもあって昔それをやったので。
Accessのデータファイルがひとつっきりってのも、いったいどうなってるのか悩んだくらいですw


569:名無しさん@そうだ選挙にいこう
09/11/18 22:44:38
質問です。
クエリのフィールドの式ビルダで連続して別の処理を行うには
どうしたらいいですか?

570:名無しさん@そうだ選挙にいこう
09/11/18 22:47:09
死んだら良いよ

571:名無しさん@そうだ選挙にいこう
09/11/18 23:39:34
NOTICE:

OFFICE BETA IS COMING: The Office 2010 Beta will be available in November 2009.
You will be notified via e-mail when it is available and the location of the Beta site will also be posted here.

572:559
09/11/19 00:22:27
>>560
レスサンクス。調べてみたんだが、
どうもBuildCriteriaが""を自動生成していて、エラーになってた。
直接入力するようにして解決。

が、アンド検索が出来ない。
sFilter = "*" & Replace(Me.BOX1, " ", "* And *") & "*"
でMe!BOX2 like *Me!BOX1_1* and *Me.BOX1_2*
にしてた。andで繋いでも駄目なのね。

573:572
09/11/19 01:38:43
split 使って出来ました。

574:名無しさん@そうだ選挙にいこう
09/11/19 08:49:24
Access 2010 Runtime
As many of you know, the Access 2007 Runtime didn’t ship until some time after Access 2007 RTM.
This was cause of frustration for many of our developers who had solutions ready for customers.
This release, we have a goal to ship the Access Runtime as close to Access 2010 as possible. As a part of this effort,
the Access 2010 Runtime Beta is ready for download. You can download the Access 2010 Runtime Beta today.


575:名無しさん@そうだ選挙にいこう
09/11/19 15:05:13
2010ベータ
おれが報告したバグ治ってた
日本語ヘルプも装備されてグッド

576:名無しさん@そうだ選挙にいこう
09/11/19 19:35:58
Web対応だとBVA使えないんやね、やっぱマクロの時代だあ。

577:名無しさん@そうだ選挙にいこう
09/11/19 22:40:57
ACCESSを操作&VBA編集できる携帯ってありますか?

578:メモリ君 ◆7mDj3mSGOQ
09/11/19 23:08:14
>>577
そんなものはありません。

あっても、それは画面のリモートコントロールだけです。


579:名無しさん@そうだ選挙にいこう
09/11/19 23:17:52
>>578
そうですか・・・外出先で確認したいなと思ってました

エクセル見れる携帯はVB使えるんですか?


580:名無しさん@そうだ選挙にいこう
09/11/20 00:04:40
SQLServerでUnionで合成したテーブルが
並び替え順で並びません
なぜかグループ化も合成した部分で勝手にされます
これはバグではないですか?

581:名無しさん@そうだ選挙にいこう
09/11/20 00:06:01
レポートのグループ化や並び順のことです

582:メモリ君 ◆7mDj3mSGOQ
09/11/20 00:20:03
>>581
レポートにはレポートに並び替えの設定があるわけなんですが、

クエリにもクエリの並び替えの順番があります。

自分もいつもひっかかる点なんですが、基準となるフィールドで
クエリで並び替えをしたものをレポートで表示させています。

クエリも、後ろのほうに並び替えだけのためのフィールドを追加
して、好きなように並び替えをしてます。3つくらい設定してますね。
もちろん、表示のチェックははずしています。

583:名無しさん@そうだ選挙にいこう
09/11/20 00:46:20
全然関係のない表のクエリを2個、列をASで同じ列名にしたりしてUnion句で、くっつけてみて
並び代わらなくなって、おかしくなるから
たぶん、ユニオンした下の表が強制で降順になってしまう
ただ、ストアド以外はいけるのかも

584:メモリ君 ◆7mDj3mSGOQ
09/11/20 00:49:26
>>583
Unionクエリを元に、選択クエリつくって、並び替えとか

585:名無しさん@そうだ選挙にいこう
09/11/20 01:05:05
全然別の2つ表をSQLかいてASで強制で全部同じ列名にしてUnionやったソースを元にレポートで並べ替えすると、おかしくならない?

586:名無しさん@そうだ選挙にいこう
09/11/20 01:22:54
すみません、ACCESSで作ったDBアプリを修正しているんですが、
どうにもこうにもわからなくなってしまったので教えてください。

項目Aという入力欄を作ったんですが、入力する内容が多くなった為、
項目Bという入力欄を新しく作りました。
項目Bは項目Aに入りきらない内容の場合分けて入力する事になります。
しかし、項目Aは主キーになっている為、Bの内容が違っていても
Aの内容が一緒だと重複扱いになってしまいます。

条件
・Aの内容が一致してもBが一致しなければ重複扱いしたくない。
・BはNULLの場合がある為、NULL許容できる仕様にしなければいけない。

上記の条件を満たすにはどのようなDBにすればいいでしょうか?
教えてください。

587:名無しさん@そうだ選挙にいこう
09/11/20 01:36:10
追加順って主キーを一番左に作れば良いかと
あとは主キーなしでおk


588:名無しさん@そうだ選挙にいこう
09/11/20 01:44:37
項目AとBで主キーにしたら駄目なのか?

589:586
09/11/20 02:01:46
>>588
Bを主キーにしたらNULL許容できないじゃありませんか?

590:名無しさん@そうだ選挙にいこう
09/11/20 02:03:34
サロゲートキーの方が良くね?

591:トリプルクリック ◆M4VDFNZnqs
09/11/20 04:01:14
項目Aと項目BでNULLを許容する一意制約をつけるにはどうするんだっけ
インデックスとか使えばできるんだっけ?

592:名無しさん@そうだ選挙にいこう
09/11/20 10:50:26
>>586
発想の転換で、Aの長さをA+Bの長さにしてBを無くせばよろしい。
長さがオーバーしてしまうのか?(←質問の情報不足)
ならばAのデータ型をメモ型にすればよろしい。
それがいやなら、AとBをインデックスにしてBを空文字許可すればよろしい。
Bに値を入れる場合NULL→空文字変換が要るかも知れんが、そこは試してみれ。  がんばれ。

593:名無しさん@そうだ選挙にいこう
09/11/20 11:23:19
>>トリプルクリック ◆M4VDFNZnqs

Excel VBA質問スレ Part13
スレリンク(tech板)

こっちのほうがいいのでは?


594:名無しさん@そうだ選挙にいこう
09/11/20 12:25:46
やっぱりUnionでくっつけた所で勝手にグループ化される、バグじゃないの?

595:名無しさん@そうだ選挙にいこう
09/11/20 12:29:45
グループレベル1を不可視にしたら、Unionしたレポートでも普通に表示されたから、グループが壊れてるよこれ
2007では直った?

596:名無しさん@そうだ選挙にいこう
09/11/20 13:52:01
2010ベータで、LongLongが追加されてるねぇ
まぁVBA全般の話だけれども。

597:名無しさん@そうだ選挙にいこう
09/11/20 21:10:58
LongLong??

598:名無しさん@そうだ選挙にいこう
09/11/20 22:48:37
64ビットの時代かー。

599:名無しさん@そうだ選挙にいこう
09/11/21 16:30:05
Access2010β版使ってみた、けっこう良いかも。リボンインターフェイス敬遠してたから
2007はスルーしてたけど。製品版買っちゃおうかしら。

600:名無しさん@そうだ選挙にいこう
09/11/21 17:45:59
どの辺がよいのか、kwsk

601:名無しさん@そうだ選挙にいこう
09/11/21 20:49:10
>>568
時間がありそうなら、SQLServerExpressにAccessのデータをエクスポートして
SSMSからさわってみると、少し変わるかも?
#SQLの入門書、やった方がいいと思う


602:名無しさん@そうだ選挙にいこう
09/11/21 21:47:39
>>600
2007には既に実装されてるんだろうけどデザインビューとデータシートビューを
一々切り替えなくていい所とか。リボンインターフェイス(?)もAccessに関しては
慣れたらそんなに苦にならないようだし。そんな些細な所。。。Macの仮想環境、しかも
Windows7RC版で使用してるし、Access初心者でもあるので突っ込んだ質問しないでね~。

603:名無しさん@そうだ選挙にいこう
09/11/21 22:39:23
フォームとかレポートでテキストボックスなんかのオブジェクトの配置をVBAで設定する方法教えてください

604:名無しさん@そうだ選挙にいこう
09/11/21 22:58:36
>>603
TextBox."Height/高さ" プロパティ
TextBox."Top/上位置" プロパティ
TextBox."Left/左位置" プロパティ
TextBox."Width/幅" プロパティ

605:名無しさん@そうだ選挙にいこう
09/11/21 22:59:26
2010β
式ビルダとかマクロエディタでintelisense働くから使いやすくなったのぉ
デフォルトのコントロール名を英文にできたら便利だなぁ。

606:名無しさん@そうだ選挙にいこう
09/11/21 23:09:53
どうもありがとうございます

607:名無しさん@そうだ選挙にいこう
09/11/21 23:25:14
LongLongって見当たらないが、64ビット版の話し?
64ビット版では最大ファイルサイズ2Gも拡大されてるの?

608:600
09/11/21 23:56:41
>>602
㌧クス

。。。2007と大して変わってないってことかな。

609:名無しさん@そうだ選挙にいこう
09/11/22 00:34:31
LongLongは64bitのみでっせ。
32bitならオーバーフローしますわね。
2GBはどうだべな。

610:名無しさん@そうだ選挙にいこう
09/11/22 01:08:20
2GBは超えられなかったぜ。エヘヘ

611:名無しさん@そうだ選挙にいこう
09/11/22 08:36:50
>>609,610
ありがと

612::::::
09/11/22 15:36:24
URLリンク(mixi.jp)

悩み事受付中♪♪♪ ドラゴンにあえるよ。

613:名無しさん@そうだ選挙にいこう
09/11/22 16:03:32
>>601
うわ、レスついてる。どうもありがとう。
エキスパートな人たちの中に書き込みして浮いてしまったと後悔してましたw
時間があるとき、案内のものをみてみます。

ついででなんですけど、同じLANの中にLinuxのサーバーが建っていて、これも
そこのrep2から書いています。rdbmsにデータが入る掲示板が動いていたり、
ターミナルから使う程度のちょっとしたデータベースの利用をしていたりするんです。
Accessはデータエンジンの切り替え(接続?)が出来るみたいですけど、
Lanを通してLinux上のMySQLなどを使えたりするんでしょうか? そのときの
データベースウインドウなどはどう見えるのかな? とか、いろいろ興味はあります。


614:名無しさん@そうだ選挙にいこう
09/11/22 17:24:23
>>613
ODBCについて調べて見れ。

615:名無しさん@そうだ選挙にいこう
09/11/22 17:25:39
うぎゃー、Technical Preview programってもう締め切られてるやんorz
ちなみに2007で廃止されたユーザーレベルセキュリティって
2010ではどうなんでしょう?
>>599様教えて下さい

616:名無しさん@そうだ選挙にいこう
09/11/22 17:54:54
【 システム環境  . 】 Windows Vista Professional、Access 2007
【 VBAが使えるか .】 はい
【 VBAでの回答  】 可
【 検索キーワード 】 タブコントロール サブフォーム VBA


フォーム上にタブコントロールを貼り、タブコントロールにサブフォームを貼っています。
サブフォームはデータシート形式で動的なSQL実行結果を表示したい。

動的なSQLとは、サブフォームと同じタブ上にあるテキストボックスに入力された条件で
テーブルから結果セットを抽出するSQLです。

dim strsql as string
dim db as database
dim rs as recordset

set db = currentdb
strsql = "SELECT * FROM tbl_Syohin WHERE Syohin_ID = " & me.txt_Syohin_ID & "'"
set rs = db.openrecordset(strsql,dbopendynaset)
me.sub_Shohin.recordsource = rs
me.sub_Shohin.requery

にてサブフォームにSQL実行結果が表示されません。
表示する方法をご教授くだたい。



617:名無しさん@そうだ選挙にいこう
09/11/22 18:13:03
>>616
me.sub_Shohin.form.recordsource = rs
me.sub_Shohin.form.requery

>>615
599じゃねぇけど、2007と同じだよ

618:名無しさん@そうだ選挙にいこう
09/11/22 18:44:24
>>617
コンパイルエラー:
型が一致しません。

と言われます。 .recordsource の部分です。。。

619:名無しさん@そうだ選挙にいこう
09/11/22 18:53:27
>>618
me.sub_Shohin.form.recordsource = strsql
これが正しいんじゃないかな?

620:名無しさん@そうだ選挙にいこう
09/11/22 19:02:47
>>619
= strsql にしたらエラーはでなくなりましたが、サブフォーム真っ白けっけのまま反応ありません。。。


621:617
09/11/22 19:03:26
>>618
ぉょ
レコードソースにレコードセットいれるのはあかんわなw
me.sub_Shohin.form.recordsource = strsql
でいいじゃろ。rsとdbはいらんな、DAO使うまでもねぇって話だった。

strsql = "SELECT * FROM tbl_Syohin WHERE Syohin_ID = " & me.txt_Syohin_ID & "'"
最後のシングルクォーテーションもだな

622:名無しさん@そうだ選挙にいこう
09/11/22 19:15:37
>>621
うぅぅむ・・・

me.sub_Shohin.form.recordsource = strsql
にしてみました。
またSQL文の最後のシングルクォートははずしました。
Syohin_ID はLONG型のカラムなのに変なことしていましたね。


結果、やはりエラーは出ませんが、サブフォーム真っ白けっけで反応ありません。
フォーム上に張り付けたサブフォームと、
タブコントロール上に張り付けたサブフォームとでは、
なんかやり方がちがうところがあるんですかねぇ・・・

クマっています。

623:617
09/11/22 19:34:08
>>622
クエリ結果が0行っぽい感じだな。確認してみれ
タブ上でも問題ないはずよ

624:名無しさん@そうだ選挙にいこう
09/11/23 22:46:18
sharepoint access service 使えるようにしてみたぞー
なんだろこれw ちょっと脱力。。。

625:名無しさん@そうだ選挙にいこう
09/11/23 22:59:34
>>624
kwsk頼む、access service密かに期待してた

626:名無しさん@そうだ選挙にいこう
09/11/23 23:12:27
>>624
見てみたいのでurl書いてちょ

627:624
09/11/23 23:28:39
>>625
大きな期待は禁物ですが、どんなことkwsk?
俺もいろいろ試したいが、お題目があんまりないのである。

>>626
なんのURLだ

Hyper-Vスナップショットを手違いで消しちまったから再インストール中
23:45には完成予定

628:624
09/11/23 23:41:36
インストールまだ終わらんから手順でも書いとく。
URLリンク(blogs.msdn.com)
・必要なもの
SharePointServer2010(Foundationはだめ)
MSSQLServer(上記対応Ver.)
必須サービスを調べるのが面倒だからフルインストール、ReportingServiceが必要みたいなこと書いてある。

インストールは、
1.MSSQLServer
2.SQL Server 2008 R2 November CTP Reporting Services Add-in for Microsoft SharePoint Technologies 2010
3.SharePointServer2010
以上、これだけ。


629:名無しさん@そうだ選挙にいこう
09/11/24 08:17:43
accessで、
350の項目数のタブ区切りのテキストデータを読み込もうとしたら、
項目が2百いくらのところで切り落とされてしまいました。
フィールド数を増やすにはどうすればよいでしょうか?

630:名無しさん@そうだ選挙にいこう
09/11/24 08:37:06
>>627
あなたのsharepointアクセスサービスに入るurlきぼん

631:624
09/11/24 12:37:07
>>630
それはできない相談だ。

>>629
テーブルの最大フィールド数は255なので分割するなどして。

632:名無しさん@そうだ選挙にいこう
09/11/25 08:16:53
>>631
255から増やすことはできないのですか?

633:名無しさん@そうだ選挙にいこう
09/11/25 09:00:41
その発想はなかったわ・・・

634:名無しさん@そうだ選挙にいこう
09/11/25 15:35:42
>>632
むりだ。
URLリンク(office.microsoft.com)

635:名無しさん@そうだ選挙にいこう
09/11/26 02:22:07
sharepoint access service の環境を片付けるのでチラ裏。
・Webオブジェクトはデザインビューがない
・マクロのみ
・データマクロやマクロは、sharepointワークフローなどに変換
・テーブルはsharepointリストに変換
・webアプリの画面遷移は、ナビゲーションフォームを使用
・フォームを開くコマンドはダイアログモードのみ
・レポート関連については、SQLServer Reporting Serviceが担当
・sharepointなのでパフォーマンスはServer次第
runtimeの代わりになるかなと期待あったけど、今のところそれはなさそう。

636:名無しさん@そうだ選挙にいこう
09/11/26 10:28:16
>>635



637:名無しさん@そうだ選挙にいこう
09/11/26 17:49:34
住所入力支援を使って郵便番号を入れたとき
テキストボックス1には市町村名を
テキストボックス2には分割なしを
それぞれ表示させるにはどうしたらいいですか?

例)
001-0011
テキストボックス1=札幌市
テキストボックス2=北海道札幌市北区十一条西(1~4丁目)


638:名無しさん@そうだ選挙にいこう
09/11/26 18:17:00
>>637
3分割して、テキストボックス2は3分割したのを結合すればいいじゃない

639:名無しさん@そうだ選挙にいこう
09/11/26 19:00:00
なるほど!その手があったね!んで試してみました。
欲しいのは市町村名と全部を繋げた住所なので、3分割にして 
Text1に都道府県(非表示)、
Text2に市町村 (表示)、
Text3に住所   (非表示)
それぞれchangeイベント発生時に文字列を結合してText4に表示!これで完璧です♪
ただ、「住所」→「郵便番号」ができないのはしょうがないですね
なにはともあれ、サンクス!

640:名無しさん@そうだ選挙にいこう
09/11/26 20:19:14
>>639
住所をメモ帳にコピペして選択状態にしてキーボードの変換キー(スペースキーの1つ右)を押すと
郵便番号に変換できるけど、これをAccessで実現できないのかな?IME関連のAPIでも使うんだろうか?
ちなみに読み方がわからない漢字があったら同様にするとひらがなに逆変換できるからよくやる。

641:1/2
09/11/26 21:42:56
お願いします。
ac2003使ってます。
下記コードを実行すると、1度目は正常に動きますが2度目以降はエラーが発生します。

原因はプロセスEXCEL.EXEが残ってしまっているせいでした。
1文づつふるいにかけていくと、
callで外部のものを呼んでいる一文に原因があることが分かりました。
しかしながら、原因は分かったもののどれだけ試しても
どうしてもEXCEL.EXEをプロセスから消すことが出来ません。

初歩的な質問かとも存じますが、どうぞよろしくお願いします。



642:379
09/11/26 21:46:11
Public Sub コマンド0_Click()
Dim xls As Excel.Application: Dim xwb As Excel.Workbook
Dim xws As Excel.Worksheet: Dim tar As String

tar = "word1"
Set xls = CreateObject("Excel.Application")
xls.Visible = True

Set xwb = xls.Workbooks.Open("C:\Documents and Settings\Owner\デスクトップ\tttt.xls")
Set xws = xwb.Worksheets("Sheet1")
With xws

Call aaaa(tar)     ←この一文

.Application.DisplayAlerts = False
.SaveAs ("C:\Documents and Settings\Owner\デスクトップ\testt.xls")
.Application.DisplayAlerts = True
End With

Set a = Nothing; Set xws = Nothing
xwb.Close; Set xwb = Nothing
xls.Quit; Set xls = Nothing
End Sub
-------------------------------------
Public Sub aaaa(strr As String)
If strr = "word1" Then
Range("A2").Value = "a"
End If
End Sub

643:名無しさん@そうだ選挙にいこう
09/11/27 00:33:52
>>641
aaaa()内で、親オブジェクトの修飾せずにRangeを使っているのが原因。
正しくはxws.Range(...)でしょうね。
引数にxws渡すとか何かするよろし。

ところで、論理行区切りがなんでコロンじゃなくセミコロンなん?
JavaScriptかよ。

644:名無しさん@そうだ選挙にいこう
09/11/27 00:39:54
むちゃくちゃ複雑なSQL書いて抽出したデーターを、元のデーターから除外したい。
でも、accessって差集合は対応していないよね。
どうしたらいいの?

645:名無しさん@そうだ選挙にいこう
09/11/27 04:18:32
>>644
EXISTSとかLEFT JOINで対応

646:名無しさん@そうだ選挙にいこう
09/11/27 08:23:09
Access2002を使ってますが、弥生給与9から10にバージョンアップしたところ、
Access2002が起動できなくなりました。(インストールの準備中・・・が立ち上
ってそのまま何も起きません)
弥生給与9に戻すと起動できます。
OSはXP-Personalで弥生会計9も入ってます。
Accessも弥生も使用しますので、両方使えるようにしたいのでよろしくお願いします。

647:名無しさん@そうだ選挙にいこう
09/11/27 11:22:17
>>646
Accessのバージョン違いが同居するPCの場合、バージョンを切り替えるごとに
インストールの準備中→ セットアップが完了してから起動するのが本来の姿です。
今回の場合、弥生給与10のインストールによりAccessのバージョン違いの新しい
コンポーネントが導入されたのが原因かと思われますが、なぜAccess2002の
セットアップが完了しないのか?という点については詳しくは分かりません。
Access2002を導入後、PCのドライブを増設したなどはありませんか?

とりあえず試して頂きたいのは…
・Access2002,弥生給与10ともにアンインストール
・Access2002を先に再インストール
・次に弥生給与10を再インストール

これでも同じ症状が出るようでしたら、弥生のサポセンへ相談しましょう。
弥生給与10のアップデートは始まって間もないとは言え何か情報を持っているはずです。

648:名無しさん@そうだ選挙にいこう
09/11/27 16:18:02
>>647
回答ありがとうございます。ドライブの増設はしてません。
弥生のサポセンにTELしましたが、やっぱり10はまだ情報が乏しく
良い回答が出ませんでした。

他に影響がでるか心配だったので避けていた、Access2002と弥生給与
アンインストールして再度インストールしました、最初はエラー出ま
したが、修復かけてたら何とか納まりました。

ありがとうございました。


649:641
09/11/27 22:27:17
>>643
遅くなりました
;なのは書き込めなかったので、改行減らしたときのミスです。

rangeのオブジェクト修飾を色々試しても、
オブジェクトが必要だとか見つからないだとか、グローバルなんとかだとか
どうしてもうまく書けないです・・。

参考までにこの部分の数行のサンプル書いてみてくだされば幸いです。。

650:643
09/11/28 00:24:11
>>649

Call aaaa(xws, tar)

Public Sub aaaa(xws As Excel.Worksheet, strr As String)
  If strr = "word1" Then
    xws.Range("A2").Value = "a"
  End If
End Sub

みたいな感じじゃないの。

651:名無しさん@そうだ選挙にいこう
09/11/28 01:40:44
>>649
>>650でたぶんOK。個人的には・・・

With xws

If IsWord1(tar) Then
.Range("A2").Value = "a"
End If
 :
 :
End With

-------------------------------------
Public Function IsWord1(strr As String) As Boolean
If Strr = "word1" Then
IsWord1 = True
Else
IsWord1 = False
End If
End Function

652:名無しさん@そうだ選挙にいこう
09/11/29 17:06:06
【 システム環境  . 】 Access97
【 VBAが使えるか .】 いいえ
【 VBAでの回答  】 否

とある項目の中に入っている「空白」を
クエリ上で消せないのか、という質問です。

会社で毎日10万行くらいのテキストデータが送られてくるのですが
それをアクセスにインポートした際、
その中の「電話番号」という項目が
「03 1234 5678」とスペース入りで打たれている上に
「0312 34 5678」とスペースの入っている位置がメチャクチャだったりするため
一旦テーブル上で「編集」→「置換」で
「 」を「null」に置換えて「0312345678」としてから、他のクエリに使っています。

毎日置換え作業をするのがわずらわしいので
クエリの中で直接エクセルのノリで
「電話番号加工後:Replace([電話番号]," ","")
という指定をしたのですが全く作動しませんでした。

クエリ上でReplaceは使えないのでしょうか?
それとも、もっと手っ取り早く「空白を消す」という関数はあるのでしょうか?
(「Trim」は複数の空白を1個にするだけで、空白は消えませんでした)

653:名無しさん@そうだ選挙にいこう
09/11/29 17:43:30
>>652
全く作動しないってのはわかりませんが、
クエリでReplaceは使えますから、別の件で問題があるのでは?


654:名無しさん@そうだ選挙にいこう
09/11/29 18:13:56
>>652
クエリがエラーを出して動作しないのか、それとも動作はするが思った結果が得られないのかで
ずいぶん話が変わってくるけれど・・・

前者の場合はSQL表示にして構文の確認。
後者の場合は「スペース」の正体を知るためにASC関数でチェックした方が良さそう。
スペースにも全角・半角があるし、スペースのように見えて別の特殊文字かもしれない。

655:653
09/11/29 18:17:46
>>652
ちょっと閃いた気がする。。。
インポートした電話番号のフィールドがnullが含まれてるのかも。
そーすっとReplaceは評価されない。
replace(nz([電話番号])," ","")
これでうまくいったら、エラーをきちんと吐かない97が悪い。
クエリ上の関数でエラーでてるのになんの表示もしないって、2000だか97でなかったっけか?
つーか、97はいつまでつかうのよw

656:名無しさん@そうだ選挙にいこう
09/11/29 22:55:37
>>652
Replace関数はAccess2000(VBA6.0)から追加された関数なので、97にはないよ。
ユーザー定義関数を作れば呼べると思うので、下記からコピペしてみたら?
URLリンク(support.microsoft.com)

657:名無しさん@そうだ選挙にいこう
09/11/29 23:04:11
>>650,651
遅くなりました。
引数にワークシート加えて指定したり
関数で判定だけさせるって発想なかったす。
まだ試せていませんが、明日試して報告します。
丁寧にありがとうございました!!

658:名無しさん@そうだ選挙にいこう
09/12/01 03:31:38
競馬ソフト作成している人いる?

659:名無しさん@そうだ選挙にいこう
09/12/01 18:20:21
ADOでレコードセットオブジェクトの内容をデータシートビューで表示する魔法を教えてください

660:名無しさん@そうだ選挙にいこう
09/12/01 18:23:59
ここでいろんなソフト売ってます
メールを送るとリストが
wwttww@mail.goo.ne.jp

661:名無しさん@そうだ選挙にいこう
09/12/01 20:27:39
>>658
水上さんこんばんは

662:名無しさん@そうだ選挙にいこう
09/12/01 20:54:33
CASEを使いたいんだけど、ANSI-92準拠って2003からだっけ?


663:名無しさん@そうだ選挙にいこう
09/12/01 21:14:01
coalesceさえ使えねえよ

664:名無しさん@そうだ選挙にいこう
09/12/01 21:26:00
結局iifの入れ子しかないよなw

665:名無しさん@そうだ選挙にいこう
09/12/01 22:23:04
というかANSIはiifを国際標準にするべき

666:名無しさん@そうだ選挙にいこう
09/12/01 22:52:33
iifは全部評価するから遅い

667:名無しさん@そうだ選挙にいこう
09/12/01 22:59:58
2010は新しいイベントやプロパティやコマンドはないのかよ

668:名無しさん@そうだ選挙にいこう
09/12/01 23:45:27
>>666
そうなるとレコードセット開いてループ内での判定処理になる訳だ・・・
アクセスって非力すぎて悲しい・・・orz

669:名無しさん@そうだ選挙にいこう
09/12/02 03:34:34
>>661 何故、水上?

670:名無しさん@そうだ選挙にいこう
09/12/02 06:51:44
>>669
つグリーンチャンネル

671:名無しさん@そうだ選挙にいこう
09/12/02 08:48:29
競馬でACCESSでも導入しないと勝ちようがないよな。

672:名無しさん@そうだ選挙にいこう
09/12/02 13:32:55
Accessとは関係ないが、昔プログラムの勉強で「馬券の損しない買い方」っていうのをやったな。
券種は忘れたが、ルールは以下のとおり。

・常に2番人気を買う。
・100円から開始。
・配当で元が取れない場合は、掛け金UP。
・勝ったら100円から。
・配当は2倍と仮定する。

で、実際の配当を元に、一年後いくら儲けが出て、また最高掛け金はいくらになるかっていうの。

673:名無しさん@そうだ選挙にいこう
09/12/02 15:45:31
マーチンゲール?

674:名無しさん@そうだ選挙にいこう
09/12/02 16:39:09
>>673
マーチンゲールっていうのか。
俺がやったときは最高掛け金16000程度で120000程度は儲かる結果となったが
分が悪いみたいだね。

675:名無しさん@そうだ選挙にいこう
09/12/02 17:23:10
2007の開発者用ヘルプ見ながら2010使いたいんだけど、どうしたら良い?
どっかに2007開発者用ヘルプない?

676:名無しさん@そうだ選挙にいこう
09/12/02 19:48:16
【 システム環境  . 】 Windowsxp, Access2000
【 VBAが使えるか .】 いいえ
【 VBAでの回答  】否
db1 db2 db3を結合したクエリを作って対象データを抜き出しましたが、
並び順を指定していないにも関わらず、元DBと並びが違う為、困ってい
ます。

db1と同じ並び順にするにはどうすれば良いでしょうか?

677:名無しさん@そうだ選挙にいこう
09/12/02 19:58:53
並び順を指定してください

678:名無しさん@そうだ選挙にいこう
09/12/02 20:27:23
>>674 マーチンゲールの法則は連敗が続いたら、多額の資金が必要となるから
資金を用意出来なければ破綻する。

679:名無しさん@そうだ選挙にいこう
09/12/02 20:30:33
>>676
並び順が気になるなら、ちゃんと指定しろ。
指定しなければ不定が常識。

680:名無しさん@そうだ選挙にいこう
09/12/02 20:44:38
>>675
URLリンク(msdn.microsoft.com)

681:名無しさん@そうだ選挙にいこう
09/12/02 21:21:12
>>680
おおお、サンクス
でもプロパティボックスの日本語プロパティ名と対応しにくいよな、日本語訳が下手杉

682:名無しさん@そうだ選挙にいこう
09/12/02 21:41:05
【ver.】Access97
【質問内容】
  :テーブル1のフィールドは以下
   ID(主キー)、フィールド1(text)、フィールド2(text)、番号(数値)
  ●このテーブルから任意のデータを先頭から呼び出してフォームに
   表示させる方法「など」をご教示ください。
  ●イメージとしては次のような感じです。
   1 まず最初にID順に先頭から100個のデータをフォームに表示させ、
     このフォーム上で、番号に「1」または「2」と入力します。
   2 1で番号「2」が10個あった場合には、次にフォームを開くときには、
     この10個を除いた先頭の100個を同じフォームに表示させます。
     つまり、1で「番号2」とした10個以外に次の10個が追加になります。

  *Accessは簡単なものしかできないレベルなので、Select ...などの
   記述はできません。普通のクエリー作成画面でなんとかしたいのですが。
   よろしくお願いします。

683:名無しさん@そうだ選挙にいこう
09/12/02 22:30:18
Access97のサポートは終了しました

684:名無しさん@そうだ選挙にいこう
09/12/02 22:40:33
代を重ねる度にヘルプはどんどん重たく解りにくくなってくよな・・・

685:名無しさん@そうだ選挙にいこう
09/12/03 02:11:31
>>682
まだ97使ってるのか・・・細かいことは忘れたがこんな感じでできないか?
・まず[番号]<>2 を抽出条件,[ID]を昇順とした選択クエリをデザイン。
・併せてこのクエリのプロパティにて「トップ値」に100を設定して保存。
・このクエリを元にフォームを作る。

686:名無しさん@そうだ選挙にいこう
09/12/03 17:40:07
2003なんだけど、ANSI-92のCASEの代わりにswitchを使っていいの?
この本を読んだら無性にCASEを使いたくなったんだけど…
URLリンク(www.amazon.co.jp)

687:名無しさん@そうだ選挙にいこう
09/12/03 18:02:16
URLリンク(b.hatena.ne.jp)

688:名無しさん@そうだ選挙にいこう
09/12/03 19:22:22
【 システム環境  . 】 WindowsXP、 Access2003、SQL2005
【 VBAが使えるか .】 はい
【 VBAでの回答  】 可能
環境をADP接続にすることになりました
コンボボックスから値を選択後、ボタンを押すとレポートを開くフォームがあります
現在、そのレポートのレコードソースにクエリが入っています
ADP接続だと、現行のフォームのコントロールを参照する式が使えませんでした
どのように変更すれば良いのでしょうか教えて頂きたいと存じます
現行のWHERE句は以下です

WHERE (((取引先マスタ.取引先コード) Between [forms]![f_取引]![ボックス1] & _
And [forms]![f_取引]![ボックス2]) AND ((取引先マスタ.取引先区分コード)=1))

689:名無しさん@そうだ選挙にいこう
09/12/03 19:35:53
質問です
Access2003です。

今回excelを取り込むものを作りました。

流れは、ファイル選択>中間テーブルに一旦取り込み(エラー処理はまだなし)
>追加クエリにて中間テーブルからメインテーブルに追加
と言うものなのですが、このどこかに取り込んだ内容により対応する
処理をするようにしたいですが可能ですか?

処理は取り込んだとある欄に対応するデータを表示(1ならAを表示みたいな)と
対応する数字によって消費税率を変えて計算して最後に両方をメインテーブルに入れたいです。

690:名無しさん@そうだ選挙にいこう
09/12/03 19:40:36
質問です。
クエリのフィールドの式ビルダで連続して別の処理を行うには
どうしたらいいですか?

691:名無しさん@そうだ選挙にいこう
09/12/03 20:58:58
そんなにエクセルが好きならエクセルのほうでとある欄に対応する
データを表示(1ならAを表示みたいな)と対応する数字によって
消費税率を変えて計算しておけばいいじゃない

692:名無しさん@そうだ選挙にいこう
09/12/04 00:28:50
>>690
連続して別の処理を行うとは?

左からクエリで演算して、さらにその結果をとなりの列で
演算とか?

693:名無しさん@そうだ選挙にいこう
09/12/04 00:32:02
>>691
そうしたいのも山々だったのですが

ちょっとそうもいかないのです。

するにはどのようにしていけばよいのでしょうか。

694:690
09/12/04 13:22:57
>>692
同一フィールドで、関数を使用して処理をした後に、別の関数で別の処理をすることです
モジュールに記載すると同じ処理でもなぜかうまくいかないので、式ビルダでなんとかしたいです

695:名無しさん@そうだ選挙にいこう
09/12/04 15:39:20
>>モジュールに記載すると同じ処理でもなぜかうまくいかない
なわけねえだろ

696:名無しさん@そうだ選挙にいこう
09/12/05 21:26:48
>>695
いや 昔、単体テストで動いてるモジュールを メインに組み込むと
動かないんですけど とクレームをつけられたことがあるぞ

697:名無しさん@そうだ選挙にいこう
09/12/05 22:57:09
みなさん、教えてください。
ACCESS単体で使っている人はどんな使い方をしてるのでしょうか。
ちなみに私は、エクセルと連携して使っています。ACCESSはデータベースとして利用。
エクセルVBAでACCESSを制御しています。
たまに、クエリーでACCESSを動かして使います。

698:名無しさん@そうだ選挙にいこう
09/12/05 23:33:51
2010はIME制御が不安定だなぁ

699:名無しさん@そうだ選挙にいこう
09/12/05 23:49:06
>>696
単体テストだけで満足して結合テストしてないからだろ

700:名無しさん@そうだ選挙にいこう
09/12/06 13:25:18
>>699
たぶんそうなんだろうね。
大手の子会社なんで、めまいがしたよ

701:名無しさん@そうだ選挙にいこう
09/12/06 13:31:07
そういう現象が起きたんですけど
とサポートの電話で文句を言われたんだよん
#すべて客先内部での話


702:名無しさん@そうだ選挙にいこう
09/12/06 13:42:18
日時型の表示形式で、nn:ss って出来ます?
2010では出来ない。。。

703:名無しさん@そうだ選挙にいこう
09/12/06 13:45:41
>>697
そういう用途にはSQL鯖 Express 使うから、最近Access使ってないかも
ADPって使ってる人いるのかな?

704:名無しさん@そうだ選挙にいこう
09/12/06 17:12:06
>>702
リボンからだとできないっぽいな。
プロパティシートからはできるよ。
これから調整はいるんじゃね
hhもできないんだがな by 64bit


705:名無しさん@そうだ選挙にいこう
09/12/07 08:40:22
>>704
プロパティシートからもVBからもできない@32ビット
時刻(S):n:s になってしまう

706:名無しさん@そうだ選挙にいこう
09/12/07 19:53:57
Access2010 βについて質問
・「データベースツール」タブの「管理」を表示させるにはどうしたらいいのか?

707:名無しさん@そうだ選挙にいこう
09/12/07 20:24:33
>>706
その辺のコマンドは、97-2000ファイル形式とかの互換用だでな
そのバージョンのmdbを開くと活性化となるでよ。動くかどうかは知らん。

708:名無しさん@そうだ選挙にいこう
09/12/07 21:10:45
>>707
さんきゅー。仰るとおり。mbdファイルだと表示されたわ。
どんなカラクリなのか今の私には分からんのじゃが。追々勉強しまっさ。

709:名無しさん@そうだ選挙にいこう
09/12/08 16:07:04
相談させてください。

★OS Win XP~7

★Access2007

★会社にてAccess97→2007へ切り替えることとなりました。
そこで教えて頂きたいのですが、全12台分のPCへインストール予定の場合、ソフトを12購入するのとライセンス購入するの
どちらが良いのでしょうか?

ライセンス購入がいまいちよくわからないです。
1ライセンスで1台ですか?
そうだとすると、ライセンス代よりも格安店で通常ソフトを購入した方が
2~3千円安いのです。
少し高くてもライセンス購入した方が後々良いことがあるのか、大差ない
なら通常ソフトでいいのか。

お分かりになる方がいらしたら、どうぞ教えてください。

710:名無しさん@そうだ選挙にいこう
09/12/08 16:38:10
>>709
ボリュームライセンスのほうがいいんじゃないか?
基本的にプロダクトキーが統一されているわけだから(いらないんだっけ?)。
一本一本買っていたらディスク要求されるような更新があった場合、よほど管理されていないとたぶん死ぬ。
で、ライセンス分の(ディスク)コピーをしてよかったはず。

711:名無しさん@そうだ選挙にいこう
09/12/08 17:44:38
2010 テキストボックスのステータスバーテキストプロパティって前からあった? おnewかな

712:名無しさん@そうだ選挙にいこう
09/12/08 18:51:01
【 システム環境 】 WindowsXP, Access2003
【 VBAが使えるか 】 いいえ
【 VBAでの回答 】 可 がんばります
下宿の物件管理をしています。
大家に物件のフォーマットを送るときに、物件の情報と大家の情報が一対一に対応しているので、
封筒に貼るラベルを印刷する際に(複数件物件を持っている大家の)住所が余分に印刷されてしまい困っています。
どうすれば重複している大家の情報を除いた(重複を一件にまとめた)レポートをつくれますか?

よろしくお願いします。





713:712
09/12/08 18:55:34
URLリンク(up.pandoravote.net)

こんなかんじで

714:名無しさん@そうだ選挙にいこう
09/12/08 20:22:09
>>712
DISTINCT使うとよろし

>>711
おnewじゃないよ

715:名無しさん@そうだ選挙にいこう
09/12/08 20:26:01
>>712
tbl_大家を作るべきだ

716:名無しさん@そうだ選挙にいこう
09/12/09 00:03:08
住民票だの風呂付きの間取りだのはまだまだ全然先になりそうだなw

717:名無しさん@そうだ選挙にいこう
09/12/09 09:21:54
2010 DatePickerの挙動がオカシイ、日付選択後にフォーカスがテキストボックスに戻らない、2007に戻した

MSの人、見てたら改善して

718:名無しさん@そうだ選挙にいこう
09/12/09 10:03:43
MSの人がみてたらw

719:名無しさん@そうだ選挙にいこう
09/12/09 10:41:40
>>717
VerUpして糞になるのがMSの流儀だよな。
おれは全Ver持っているけど、2002を使っている

720:名無しさん@そうだ選挙にいこう
09/12/09 10:45:30
2010プレビュー コネクトでバグ報告したら返信も何もないで治ってた、βでは日本語で報告する所がないからメンドイから2ちゃんねるに書くだけ

721:709
09/12/09 11:09:53
>>710
ありがとうございました!
早速調べてみます。

722:名無しさん@そうだ選挙にいこう
09/12/10 01:01:36
SQLでFROM句にDAOかADOのレコードセットオブジェクトを指定することはできますか?

723:名無しさん@そうだ選挙にいこう
09/12/10 01:12:33
>>722
状況がよくわかりませんが
SQL文一発で書いてください


724:722
09/12/10 01:21:28
>>723
サブクエリ使うと重くなるので、すでに一度実行したSQLで作成した
レコードセットを再利用して追加でSQLを実行したいのです。

725:名無しさん@そうだ選挙にいこう
09/12/10 12:48:13
フォームのテキストボックスのコントロールソースのデータ型調べるにはどうしたら良いですか?


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