1read 100read
2011年11月2期ビジネスsoft9: Access総合相談所 25 (155) TOP カテ一覧 スレ一覧 2ch元 削除依頼

Access総合相談所 25


1 :2011/10/07 〜 最終レス :2011/11/24
ACCESSに関する質問はこちらへ
▼━ 質問のしかた ━━━━━━━━━━━━━━━━━━━━
★ OS、ACCESSのバージョンを明記してください。
★ 質問内容は具体的に書いてください。
  ・何がしたいのか
  ・どんな処理を試したか
  ・動作状況など駄目な理由
  テーブル/フォームの構成、クエリ、VBAの内容など差し支えない
 範囲で詳しく書くと、早く回答が得られるかもしれません。
  図解があれば尚良し。
  聞き返さなくても詳細が把握できる質問が望ましいです。
★ 事前にヘルプ・Google等で調べられる範囲は調べてください。
  大概の疑問は検索することで解決します。
★ アドバイスを貰ったら、必ず経過・結果の報告をして下さい。
  ギブアンドテイクで情報を共有しましょう。
▼━質問テンプレ ━━━━━━━━━━━━━━━━━
【 システム環境  】 Windows**, Access**
【 VBAが使えるか 】 はい・いいえ
【 VBAでの回答  】 可・否
【 検索キーワード 】 Googleやヘルプでの検索キーワード
前スレ
Access総合相談所 24
http://hibari.2ch.net/test/read.cgi/bsoft/1287268291/

2 :
>>1
前スレ1000だが間違えた。八桁テキストなら
式1:Format(フィールド名, "0000/00/00")
とかになるな。

3 :
>>2
ありがとうございます。
式1:Format(フィールド名,"@@@@/@@/@@")で日付変換はできるのですが、/スラッシュの部分を-ハイフンで表示出来ないのです。

4 :
ちなみに既にご指摘頂いているwindows2000を使用です。円マークをスラッシュに変更すればいけるように思ったんですが。

5 :
>>4
Access2000を使っているのなら、素直にLeft、Mid、Rightでつなぎ合わせればいいんじゃないか?
別にバージョン移行したからといって、使えなくなるわけではないし。
たまたまバージョンのせいで使えなかっただけで、別解も得られたわけだろ?

6 :
>>5
そうですね。スマートじゃないなと思ったんですが、できるには違いないのでそうしてみます。ありがとうございました。

7 :
ほかのユーザーが同じデータに対して同時に変更を試みている ので、プロセスが停止しました。

8 :
>>7
ドキッとした。
このエラー出てどうしようもなくなってアプリ作り直したことあるわw

9 :
前スレ941解らん突破できん。

10 :
もういいやめとけ。あんまり意味ない。
フォームが開けて更新できるっつんならだけど、バックエンドのパスワードが変わっちゃったという状態と同じじゃないか

11 :
Access達人の皆様、検証願います
ユーザーにテーブルを見せない方法、フリーで流れてる家計簿アプリに入れてみた
(pathの操作が良く解らないのでディレクトリ固定、C:\DAT\ に置いて起動してください)
http://up1m.ko.gs/src/koups869.zip
これで突破や不具合がなければ完成です

12 :
明日当たり検証してみる

13 :
>>11
みんなが得られるものはあるの?

14 :
たびたびスミマセン、チョッチ修正しました
検証願います
(pathの操作が良く解らないのでディレクトリ固定、C:\DAT\ に置いて起動してください)
http://up1m.ko.gs/src/koups870.zip

15 :
待ってろ、俺が突破してやる。
サーバーじゃないアクセスでテーブル隠匿なんて土台無理だろ。

16 :
>>14
追ってたがテーブル見るのは諦めますた、検証後の種明かしキターイイ
それとそのアクセスウインドウ隠すのはどうやってんの?

17 :
>>16
検証有難うございます
Access2010ならフォーム形式でOverLapped(タブじゃない方)を選んで最大化するだけで、
そのまんまWindows標準の OverlapWindowになります
加えてRibbonとNaviPaneを非表示にすれば格好が付きます
ショートカットで最小化起動するとさらに格好良くなります

18 :
>>17
ほんまや、APIいらんのやね始めて知ったわ
ありがと

19 :
>>前スレ941
金子由香里のメアドはさ、omanko@omanko だね
ちょっと品が良くないと思います。つーことで攻略は完了ということでいいかな?

20 :
テーブル はほかのユーザーが排他的に開いているか、既にユーザー インターフェイスを介して開いているので、
プログラムによって操作することはできません。
うっかり機種依存文字ごとMySQLに読み込ませてリンクテーブル越しに文字化けした部分を直そうとしたら↑
おまけにレコードごと削除しようとしても↑
何をどうやっても↑
なんのことはない、MySQLを直接いじったら何の触りもなく消せた。
もうちょっと的を射たメッセージ出してよ…

21 :
>>19
> 金子由香里のメアドはさ、omanko@omanko だね
検証有難うございます
はい、僅か三日で破られました
何か推測しやすくなってるとか、塞げる孔でしょうかね?
破ったヒント頂けたら嬉しいです

22 :
>>21
>塞げる孔でしょうかね?
裏口叩いた的なことは一切してない。仕様だから塞ぐべき孔ということではない。
>破ったヒント頂けたら嬉しいです
検証に付き合ってくれて仕組みが判らないって言ってる人がいるのだから、
仕掛けを説明してその評価を受けるのが先ではないの?

23 :
おおおーーー。
俺は突破法も対策も分かったぞー。
そこ弄られてたら落とすせばいい!
だが肝心の仕掛けがまだ分からん。これから。
つまらなくなるから種明かしはしないでね。>>941

24 :
チョッチだけ対策修正しました、なかなか完成しないです…
ユーザーにテーブル見せない方法
http://up1m.ko.gs/src/koups875.zip
(相変わらずパス固定、バックエンドは C:\DAT\ に置いてください)
>>14 の家計簿の方も同じ対応で良いと思いますが、ファイル小さいこちらの方で
Q)テーブルに登録されている、藤巻陽子さんのメールアドレスは何でしょうか?
強度検証終わりましたら、これが突破されましたら、ロジックの批評や提案をお願いしたく思います

25 :
>>24
osiri@osiri
もうやめとけ

26 :
>>25
検証有難うございます
仕組みは単純で恥ずかしいのですが、
>> http://office.microsoft.com/ja-jp/access-help/HP005187453.aspx
> リンクされているテーブルのパフォーマンスを高める
> リンクしたテーブルをネットワークまたは SQL データベースで使用している場合、
> パフォーマンスを最適化するには、次のガイドラインに従ってください。
の最初に記載されてる方法を行っていました
空テーブルのリンクテーブルを作らずに直接OpenRecordsetしていました
>>25
どうやって藤巻陽子さんのメールアドレスを見たのでしょうか?

27 :
なーるほど。。。

28 :
穴塞げば行けるんじゃねーの

29 :
載せられて種明かしてやんのアフォウだ。

30 :
見られて困る内容は暗号化して保存しとけ

31 :
>>26
もうちょっと仕込みいれてたんじゃないか?。本題にはならないからまぁいいか。
DAOのBEへの接続は、なんというか共有とか再利用されるって感じだから、
接続された状態にあれば、パスワード知らなくても結構いろんなことができる。
Accessアプリケーション全体の仕様を不足なく捉えていないとこんなんなると思うよ。
とりあえずドドスコ重要ポイントはこれらにつきる。
それなりに効果はあったということだろうけど、まだ硬くすることはできるでしょ。費用対効果は別として。
つーか、Path固定はなんとかしろやと。
それにしても建設的なコメントがついてなくてちょっと残念だね。

32 :
>>24
そもそも、全体の種を自ら明かさずに、人をつかって開発する
ってのは、俺のポリシーからするとちょっといただけないな。
俺も似たような実装しているけれど、自分で作り自分でハック
して確かめている。
なによりも、mdbやらaccdbなんかはパスワードハックのソフトウェア
で簡単にこじ開けられるから、はたしていかがなものか。

33 :
>>31
アドバイスおよび度々の検証有難うございます
実は最後の書き込み直後に気づきまして…何という当たり前な って感じです
なんか変えられた場合はquitで、とか
> つーか、Path固定はなんとかしろやと。
それ全然、見当もつきません
>>32
開発とかじゃないんです、名簿管理してただけのシロウトで、知的好奇心のみです
旨く完成したら、実は中身はこうでした!(^^)! くらい
> なによりも、mdbやらaccdbなんかはパスワードハック
mdbは全部一瞬で開けれますが、2010accdbはハック出来てないと思います

34 :
2010で作ったVBA用のaccdbファイルが2007で開けない、、、
「認識できない」っていわれるんだけど2010ランタイム以外に手はありますか?

35 :
>>34
基本的に仕様だな。
2010からの機能とか全部外して新しいaccdbにインポートして確かめてみれ。
要はCurrentDb.Versionが12.0になるようにな。14.0になったらなんらか制限とか発生する
まぁいろいろ試せ。きっと君ならできる。多分な。おそらく。できるんじゃね?
デコンパイルしてから2007で試せよ。約束だぞ。
>>33
>なんか変えられた場合はquitで、とか
緻密にやらないとあっという間ですわ。

36 :
>>35
そこまで面倒なことをしなくても2007でaccdbを作って全部のオブジェクトをインポートしたら読めた。
VBAの参照設定をその12.0とかに変えてやったらVBAも一応動いた。
これでも十分面倒だったけど、、、
とにかくありがとう。

37 :
そのaccdbは、2010の新機能使ってなかったから、それだけで出来た

38 :
知らぬが仏、というか2010の機能なんて全く考えずに2003の知識で作ってた。
知ってて2010の機能使ってたらドツボにはまってたなw端末のほとんどは2007だし。
ランタイム使えばいいんだろうけど使ったことないし不自由そうだし。

39 :
>>35
只の知ったかだろ
半角数字とか学生の分際で早くも理系気取りかよ

40 :
なにを言ってるのかよくわからない

41 :
何か優越感みたいなものを持っているのだろう

42 :
なにを言ってるのかわかった。
劣等感の塊の人の被害妄想でした。

43 :
景気悪くてイラついてるんでしょ

44 :
なんだ生理か

45 :
景気悪いですねー。

46 :
Win2000
Access2000ランタイム
この端末にAccess2003を入れたいのですが、何か問題点や注意点はありますか?
また、上記作業はAccess2000ランタイムをアンインストールし、
Access2003をインストールという手順を考えています。
この方法で大丈夫でしょうか?
よろしくお願いします。

47 :
他の方法があるとは思えない

48 :
〉〉47
回答ありがとうございます。
Windows2000にAccess2003をインストールするのはどうでしょう?
よろしくお願いします。

49 :
〉〉47
回答ありがとうございます。
Windows2000にAccess2003をインストールするのはどうでしょう?
よろしくお願いします。

50 :
>この端末にAccess2003を入れたいのですが
だから
>Windows2000にAccess2003をインストールするのはどうでしょう?
必須事項です。

51 :
ありがとうございます。
Windows2000環境でのAccess2003の使用は問題無いか知りたかったのですが、
大丈夫と言うことでしょうか?

52 :
Microsoft Office Access 2003 の必要システム
最終更新日: 2006年11月27日
Microsoft Office Access 2003 の必要システムを紹介します。
コンポーネント 要件
日本語版オペレーティングシステム
Microsoft Windows 2000 (Service Pack 3) 以上、Microsoft Windows XP 以上、または Microsoft Windows Vista

http://www.microsoft.com/japan/office/previous/2003/access/prodinfo/sysreq.mspx

53 :
Access2003 です
宜しくお願いします。
Access 2003 です
テーブル名 omoikane
主キー: datetime
並び: 昇順
フィールド名 datetime  ymdhm   eur  usd    jpy    chf    gbp
実際のデータ:
datetime  ymdhm      eur    usd     jpy    chf     gbp
1221440400 2008.09.15 01:00 0.1409438 -0.5596544 0.1994319 0.06646993 0.152808
ymdhm の値で探索し、そのレコードが先頭テーブルから、何番目のデータかを知る、クエリを教えて頂けませんか。

54 :
<=datetimeの条件でカウントすればいい

55 :
>>54 Thxです
>>53 です
もう少し詳しく教えてもらえませんか
1. ymdhm を検索をおこなう
2. 1.で探索成功した場合、その時のdatetime の値を取得する
3. 2.で取得したdatetimeの値をもとに、<=datetaime になる行を求める
こんな感じでしょうか?

56 :
やってから聞けよ

57 :
ROWNUM 使えば?

58 :
ひとつのMySQLのDBに対し2拠点(部門A,B)から接続。
端末側はAccessで作ったプログラムaccdb。ここからリンクテーブル越しに接続しています。
部門AからはテーブルA、部門BからはテーブルBへ。テーブルA,Bは同じ構造で、本来
一本化してコードで分けるはずがいろいろ不備があってとりあえず別々にすることに。
今後も制作が続くので部門AからXというリンク越しにテーブルAに、BからもXというリンク越しに
テーブルBに繋ぐ、というように接続先の違いをリンクテーブルの名を変更して揃えることによって
吸収してしまえばプログラム自体は一つで済む、と思いますが考え方間違ってますか?

59 :
設定ファイルを忍ばせて置いて、それによってテーブルAだのBだのを制御させれば、プログラムは1本で済む

60 :
>>58
リンク先を変えるほうが一般的じゃないのかな?

61 :
>>59
レジストリでもいいな。

62 :
リンク先のテーブル名を変えれるのか?

63 :
リンクの名前を同一にしてリンク先のテーブルを変えるんだろう

64 :
変えれるの?

65 :
テーブル名は変えれないかと…

66 :
ACCESS2003です。よろしくお願いします。初心者です。
クエリの抽出条件のところで、
@>500
A>[何以上?]  (500を入力)
@とAで結果が異なるんですが、なぜでしょう?
@だと正しく抽出できるのですが、Aだと500より大きい値と
100より小さい値が抽出されます。なおかつ1000以上は抽出
されていない・・・・。

67 :
>>66
めんどくさいから試してないが、クエリのデザインビューで
右クリック>パラメータ
[何以上?] 数値型
と定義するといいと思われ。

68 :
>>67
ありがとうございます!
さっそく今日試してみます!

69 :
次期アクセスはVBAが廃止になって、ドットネットで操作します

70 :
シンガポール軍は、作戦級C4IシステムとしてACCESSを使用してるそうです。
詳細、お願いします。
あの、Microsoft Office ですよね?

71 :
Office2007SP3
http://www.microsoft.com/downloads/ja-jp/details.aspx?FamilyID=0e40bbe7-1422-40ea-912d-2a29d709f93f

72 :
WindowsXPSP3+Access2010+Access2000ランタイム
上記PC環境で、Access2010のモジュール内で
CreateObject("Access.Application")したら
エラー429(ActiveXコンポーネントを作成できません。)が発生したので
よくよく調べてみたら、どうやらランタイムに対してCreateObjectしようとしてる感じでした。
PC環境を変えずにAccess2010をCreateObjectする方法ってありますか?
ご存知でしたらアドバイスください、よろしくお願いします!
ちなみに、インストール順を2000ランタイム→Access2010としてもダメでした。。

73 :
>>72
CreateObject("Access.Application.14")
を試してみれ
ダメだったら、混ぜるな危険ってことじゃね?

74 :
>>73
なるほど、その手が!
どうもありがとうございます、なんかいけそうな雰囲気です!!
後日結果報告します!

75 :
>>69
ソースは?
無いなら、Microsoftに問い合わせる。
お前が訴えれるまで、何かを続けるつもりだ。もうプリントアウト(7/7)は済んだぞ。

76 :
次期バージョンにつきましては、公式に公開している情報以外はお答えすることは出来ません。
また、そのような非公式の情報に対して、如何なる根拠も提示することはしておりません。

77 :
ACCESS2003で住所をMDBへ入れてるんですが、
クエリの作り方がわからないのでお知恵貸してください。
テーブル(myaddress)には、ID,住所1,住所2,住所3,住所4,使用回数があります。
住所1に都道府県が入っています。
別の処理で、住所の場所と取引があると、住所回数へ1をプラスしています。
都道府県だけを、重複なし かつ 使用回数の多い順番でソートして取り出したいです。
SQLビューでDISTINCTを使って重複なしはできたのですが、
ORDER BY を入れると「DISTINCTと矛盾しています」となりうまく行きません。
できれば一回のクエリで抽出したいのですが、どのようにしたら実現できるでしょうか?

78 :
ORDER BY 句 <句> が DISTINCT 句と矛盾しています。(エラー 3093)
ALL 述語、DISTINCT 述語、または DISTINCTROW 述語と、SELECT ステートメントに含まれていないフィールドを含む ORDER BY 句で、SQL ステートメントを作成しています。DISTINCT 予約語を削除するか、示されたフィールドを ORDER BY 句から削除してください。
c 2010 Microsoft Corporation. All rights reserved.

79 :
>>77
SELECT 住所1 FROM myaddress GROUP BY 住所1 ORDER BY SUM(使用回数) DESC

80 :
>>78
情報ありがとうございます。
DISTINCT と ORDERの使い方がまだわかってないです。
>>79
おぉ!ぜんぜん思いつかなかった方法です。
ORDER BY の所に SUM(使用回数) を持ってくるのですね。
自分のMDBへ入れたら希望通りの動作になりました
ありがとうございました

81 :
XPでACCESS2000のデータアクセスページをウィザードで作ろうとすると
「データアクセスページを作成できません」とエラーがでます
どうしたらよいのでしょうか?ご存知の方がおられれば教えてください

82 :
>>81
フルインストしている?

83 :
>82
はい、フルインストールしてます

84 :
▼━質問テンプレ ━━━━━━━━━━━━━━━━━
【 システム環境  】 Windows7, Access2003
【 VBAが使えるか 】 はい
【 VBAでの回答  】 可
【 検索キーワード 】 access 別データベース テーブル フィールドサイズ 変更
本体mdbとデータ用mdbに分けて、リンクテーブルで繋いで運用中です。
本体mdbからデータ用mdbのテーブルのフィールドの追加やサイズ変更をしたいということで
「ALTER TABLE テーブル ALTER COLUMN フィールド TEXT(10)」をExecuteしましたが
「リンクされているデータソースに対してデータ定義ステートメントを実行することはできません」
と言われてしまいました。
リンクテーブル先のフィールドサイズなどを変更させたい場合、何か別に方法はあるでしょうか?
ちなみに
strSQL = "ALTER TABLE " & "テーブル " _
& "ALTER COLUMN フィールド TEXT(10) " _
& "IN '' [Ms Access;PWD=" & strPass & ";DATABASE=" & CurrentProject.Path & "\データ用.mdb;] "
を試しましたが構文エラーでした。

85 :
【 システム環境  】 Windows xp, Access2002
【 VBAが使えるか 】 はい
【 VBAでの回答  】 可
【 検索キーワード 】 access パスワード 解除
vbaのパスワードかけられるらしいですが
なんか巷のツールで簡単に解除できるらしいのですが
強力なパスワードのかけかた知っている人いませんか?

86 :
自己レスですが、DAOを使って何とかなりました。
参照設定をしなくてはいけなくなるので、DAOの使用は避けたかったのですが
他に方法がなければ仕方ありません。
解決してませんが解決しました。

87 :
>>85
そもそもMDBだから問題が発生するんだろ。MDEにすればいいじゃん。
MDBは自分だけで管理。

88 :
Access2010です。
acCmdUndo は、マクロビルダからどれを選べば良いですか?
結構探しましたが見つけられなくて困っています。

89 :
>>88
アクションカタログに検索窓あるでしょ
「戻す」とかで検索しなよ

90 :
なるほどmdeという手段があるのですね
やってみましたが編集できなくなるようですね
これでオレのたいしたことない技術も盗まれずにすむ

91 :
>>90
さらに意地悪をしたいのなら、名前の変更で.mdeを.mdbの拡張子に変えて渡す。
アイコンが変わらないから、初歩的な知識しか持たない人にはまずわからない。

92 :
>>89
有難うございます
確かにVBAに変換したらacCmdUndoになるものがありました
(マクロをVBAに変換操作すると、50%以上の確率で二度とaccdbを開けなくなる、2010SP1バグかな)
なんか勘違いしてました
目的は、Undoメソッドに相当するマクロを探してました
ないんですよね
結局、コントロールの更新前にUndoするにはマクロじゃ無理ですね

93 :
>>86
参照設定が嫌ならレイトバインドすればいいんじゃない

94 :
>>93
おっしゃるとおり、今回は下のように処理をしようと思っています。
ただ、DAOのバージョンを、これから先も末永く気にしなくてはいけないのが
ちょっとネックなのです。
このデータベースの管理は、いつか誰かに引き継がなくてはならないものですから。
(ひょっとしたら、データベースのコトをあまりわかっていない人に)
Private Function GetDAO() As Object
On Error Resume Next
Set GetDAO = CreateObject("DAO.DBEngine.36")
If Err.Number <> 0 Then
Set GetDAO = CreateObject("DAO.DBEngine.120")
Else
'DAOのバージョンが増えた時のために
End If
On Error GoTo 0
If GetDAO Is Nothing Then MsgBox "『DAO』のバージョンが想定外のため処理を中断します。"
End Function

95 :
>>94
処理が増えることを見越してのコーディングなら、条件分岐はcase文のほうがいいと思うよ。
別に間違いだとかそういうわけではないけど。

96 :
>>94
想定外で処理を中断するのなら結局コードの手直しをさせるってことだよね?
だったら参照設定にしておいて参照を変更させてもいいような…
まあ>>84はこうやれば出来ちゃうんだけどね
strSQL = "ALTER TABLE [" & CurrentProject.Path & "\データ用.mdb].テーブル " _
& "ALTER COLUMN フィールド TEXT(10) "

97 :
あ、ごめんsageてなかったわ

98 :
>>74
遅くなりました、すみません、ダメでした。。。
やはり混ぜるな危険のようです、無念...orz

99 :
あ、パス忘れてた
わかると思うけど一応訂正
strSQL = "ALTER TABLE [Ms Access;PWD=" & strPass & ";DATABASE=" _
& CurrentProject.Path & "\データ用.mdb;].テーブル " _
& "ALTER COLUMN フィールド TEXT(10) "

100read 1read
1read 100read
TOP カテ一覧 スレ一覧 2ch元 削除依頼