Access VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


296 / 500 ページ ←次へ | 前へ→

【7303】Re:フォーム名の長さの制約?
発言  YU-TANG WEB  - 06/2/17(金) 13:54 -

引用なし
パスワード
   同じ環境が無いので検証できませんが、オブジェクト名に 2 バイト文字を
使っているからではないでしょうか。

仕様上は明記されていませんが、古い Windows OS、古い Access ではマルチ
バイト キャラクターセット(以下 MBCS)を考慮していない実装が混じって
いるため、無用なトラブルを避けるためにオブジェクト名には 2 バイト文字
を使わないというのが鉄則でした。
Unicode をサポートした OS とアプリの組み合わせでは多少マシになったよう
ですが、それでも多くの開発者は未だにオブジェクト名には 2 バイト文字を
使わないようにしているはずです(と言うか、少なくとも私はそう)。

Access が Unicode をサポートしたのは Access 2000 以降、Windows OS が
Unicode をサポートしたのは NT 系の 4.0 以降です。
Windows 98, ME は Unicode 部分サポートのため、Access 97 と Windows 98
というのは MBCS の取り扱いが弱い組み合わせの代表例になります。

で、Access に限った話ではありませんが、MBCS における有名な問題の一つに
0x5c 問題というのがあります(他にもたくさんありますが)。
これは MBCS 文字の 2 バイト目がたまたま 0x5c だと、エスケープシーケンス
の「\」と誤認して処理がおかしくなるというもので、代表的な該当文字に
「予」や「表」、「ソ」、「十」などがあります。
偶然かもしれませんが、今回の事例でフォーム名に該当文字が含まれている
のが気になりますね。
興味があれば、「0x5c」でググってみてください。

私だったら即刻オブジェクト名に 2 バイト文字の使用を禁止します。
どのみち今から Access 97 や Windows 98 を M$ が改修してくれる可能性は
無いわけですし、後はどう自衛するかだけではないでしょうか。
・ツリー全体表示

【7302】Re:テーブル作成クエリ
回答  クロ  - 06/2/17(金) 11:05 -

引用なし
パスワード
   問題ないようですが…
FROM句にある「集計」というのはテーブルですか?

他所ではありますが、サンプルを上げましたので
拾ってみてください。
http://www.penhagi.com/cgi-b/bbs/bbs.cgi

※取得後に先方を削除しますので先方へのレスは付けないでください。
・ツリー全体表示

【7301】Re:テーブル作成クエリ
発言  チリ子  - 06/2/17(金) 10:55 -

引用なし
パスワード
   ▼チリ子 さん:
>▼クロ さん:

すいません!!
ミスを発見できました!!!!
VBを書くところで間違ったところに書いていました。
お騒がせしてすいません(-_-;)
出来ました(*^_^*)
ありがとうございました。<m(__)m>
・ツリー全体表示

【7300】Re:テーブル作成クエリ
回答  チリ子  - 06/2/17(金) 10:49 -

引用なし
パスワード
   ▼クロ さん:

>いえ、それでいいと思います。
>Inputboxも出ませんか?
出ません。
>
>VBエディタのメニュー>デバッグ>***アプリケーションのコンパイル
>をして何かエラーが出ませんか?
出ません。アプリケーションのコンパイルが透明になって押せません。

>それと、strSQLの部分をコピペして貼り付けてください。

strSQL = "SELECT [No], 都道府県, 市町村名, コード, 人数A, 特別徴収税額A," & _
     " 人数B, 特別徴収税額B, 一括特別徴収税額B, 人数C, 特別徴収税額C," & _
     " 人数D, 特別徴収税額D, 指定番号 INTO " & strTName & " FROM 集計;"

どうでしょうか?
・ツリー全体表示

【7299】Re:テーブル作成クエリ
回答  クロ  - 06/2/17(金) 10:38 -

引用なし
パスワード
   ▼チリ子 さん:
>そうです。間違ってたでしょうか?

いえ、それでいいと思います。
Inputboxも出ませんか?

VBエディタのメニュー>デバッグ>***アプリケーションのコンパイル
をして何かエラーが出ませんか?

それと、strSQLの部分をコピペして貼り付けてください。
・ツリー全体表示

【7298】Re:テーブル作成クエリ
回答  チリ子  - 06/2/17(金) 10:31 -

引用なし
パスワード
   ▼クロ さん:
>おはようございます
>
>ボタンとはコマンドボタンですか?
>クリック時のイベントを[イベントプロシージャ]にして、その欄の右に[…]ボタンを
>クリックしてVBエディタを起動し、
>Private Sub ボタン名_Click()
>と
>End Sub
>の間に書いたのでしょうか?

おはようございます。
そうです。間違ってたでしょうか?
・ツリー全体表示

【7297】Re:テーブル作成クエリ
回答  クロ  - 06/2/17(金) 10:28 -

引用なし
パスワード
   おはようございます

>お返事ありがとうございます。
>ボタンに貼り付けて試してみたのですが、クリックしても何の反応もないのはどうしてでしょうか?

ボタンとはコマンドボタンですか?
クリック時のイベントを[イベントプロシージャ]にして、その欄の右に[…]ボタンを
クリックしてVBエディタを起動し、
Private Sub ボタン名_Click()

End Sub
の間に書いたのでしょうか?
・ツリー全体表示

【7296】Re:テーブル作成クエリ
質問  チリ子  - 06/2/17(金) 10:23 -

引用なし
パスワード
   ▼クロ さん:
>InputBoxで新規テーブル名を入力して変数(例えばstrTName)に新テーブル名を
>入れ、それをSQLに組み込んでみては
>
>Dim strTName As String
>Dim strSQL As String
>
>strTName=InputBox("新テーブル名を入れて")
>
>strSQL = "SELECT [No], 都道府県, 市町村名, コード, 人数A, 特別徴収税額A," & _
>     " 人数B, 特別徴収税額B, 一括特別徴収税額B, 人数C, 特別徴収税額C," & _
>     " 人数D, 特別徴収税額D, 指定番号 INTO " & strTName & " FROM 集計;"
>
>Docmd.RunSQL strSQL
>'もしくはExecuteで
>
>な感じで

お返事ありがとうございます。
ボタンに貼り付けて試してみたのですが、クリックしても何の反応もないのはどうしてでしょうか?
・ツリー全体表示

【7295】Re:フォーム名の長さの制約?
質問  ふぁんた  - 06/2/17(金) 10:11 -

引用なし
パスワード
   追伸:職場のPCでは
F09_予短目……もエラーとなりました。
F09_yotan は エラーがでません。

こういう現象は、私のPCだけなんでしょうか?
・ツリー全体表示

【7294】Re:パスワード入力フォームを作るべき
回答  たん  - 06/2/17(金) 8:40 -

引用なし
パスワード
   InputBoxやパラメータクエリでは不可能です。

パスワード入力用フォームを作成し、
その中のテキストボックスの定型入力で処理するしかありません。

当然、パスワード入力フォームをポップアップで立ち上げる必要が
あります。
・ツリー全体表示

【7293】フォーム名の長さの制約?
質問  ふぁんた  - 06/2/17(金) 8:13 -

引用なし
パスワード
   職場のWindows98+access97でいつも使っている以下のVBA
(フォームを開き、フォームの中のコマンドボタンの可視を はい にする)
で、
−−−−−−−−−−−−−−−−−−−−−−
On Error GoTo temp6_Err

  DoCmd.OpenForm "F09_予防短期目標", acNormal, "", "", , acNormal
  DoCmd.Restore
  DoCmd.GoToRecord acForm, "F09_予防短期目標", acLast
  Forms![F09_予防短期目標]![bt].Visible = True

temp6_Exit:
  Exit Sub
temp6_Err:
  MsgBox Error$
  Resume temp6_Exit
−−−−−−−−−−−−−−−−−−−−−−
で、
  Forms![F09_予防短期目標]![bt].Visible = True
の行で以下のようなエラーがでました。
−−−−−−−−−−−−−−−−−−−−−−−−
マクロの式または Visual Basic コードで参照されている 'F09_予防短期目標' フォームが見つかりません。
* 参照しようとしたフォームが閉じているか、このデータベースにはありません。
* このフォームの Visual Basic モジュールでコンパイルエラーが発生しました。
−−−−−−−−−−−−−−
つまり、フォームが開いているのに、認識されないのです。

自宅に帰り、WindowsXP+access97では、同じエラーがでました。
access2002にデータベース変換したらエラーはでません。
access97 でも、値の代入マクロではエラーはでません。

当掲示板の過去ログなどをさがしましたが、みつからず、
問題のフォームの名前をいろいろ変えてみました。
F09_予防短期目標……×
F09_予短目……○
F09_yotan……○
F_予防短期目標……○
F09_予防短期目標試作……×
でした。

フォーム名の長さの制約 いったものがあるのでしょうか?
今後の参考にいたしたく、ご存知の方ご教示願えないでしょうか。
なお ヘルプには、「長さは半角で 64 文字以下です」という記載はありました。
・ツリー全体表示

【7292】inputboxの部分を***と表示したいのですが
発言  あきら  - 06/2/17(金) 2:30 -

引用なし
パスワード
   はじめまして、オフィス全般のインストラクターをしおりますあきらと申します。
教室ではVBAなどはもちろんやってないのですが、少し興味があり最近趣味で始めました。
と言っても英語なのでまったく意味がわかりませんが^^;

実はアクセスのVBAで、テーブルに入っているデータをエクスポートする際に
1.はい、いいえ、の選択ダイアログボックス画面を出す
2.いいえを押したら終了(アクセスではなく、確認ダイアログボックスを)
3.はいを押した場合に「パスワード入力してください」と表示する
この3.番のところでパスワードを入力しても「****」な感じで表示したいのですが
可能でしょうか?

とりあえず今作ったやつを記載しています。
素人なので、的外れなことを聞いているかもしれないし、質問がアバウトすぎてわかりにくいかもしれませんが、よろしくおねがいします(_m_)


Sub エクスポート処理()
  If MsgBox("エクスポートする??", vbQuestion + vbYesNo, ) = vbNo Then Exit Sub
    DoCmd.TransferSpreadsheet acExport, 8, "住所データベース", "C:\住所.xls", True, ""
  
  Const mypwd = "1129"
  Dim pwd As String
  
  pwd = InputBox("パスワードを確認")
  If pwd = mypwd Then
  MsgBox "エクスポート完了", vbOKOnly,
  
  Else
  MsgBox "パスワードが違います。", vbCritical
  Exit Sub

End If

End Sub


一応これでできたのですが、パスワード打てばそのまま表示されてしまうので・・・・
・ツリー全体表示

【7291】Re:追加質問:テーブル・マクロの変更がで...
お礼  ガイア  - 06/2/16(木) 17:05 -

引用なし
パスワード
   ▼たん さん:
どうもありがとうございます。
 参考にしたいとおもいます。
 
・ツリー全体表示

【7290】Re:Accessの中でファイルの解凍処理を行え...
発言  Whitworth  - 06/2/16(木) 16:38 -

引用なし
パスワード
   クロ さん
情報ありがとうございます。
やはり参照設定のためのDLLを追加しないとダメそうですね…。
まだこの機能を追加するかは未定なので、もう少し内容を吟味したところで
どうするかを判断してみたいと思います。
・ツリー全体表示

【7289】Re:テーブル作成クエリ
回答  クロ  - 06/2/16(木) 16:38 -

引用なし
パスワード
   InputBoxで新規テーブル名を入力して変数(例えばstrTName)に新テーブル名を
入れ、それをSQLに組み込んでみては

Dim strTName As String
Dim strSQL As String

strTName=InputBox("新テーブル名を入れて")

strSQL = "SELECT [No], 都道府県, 市町村名, コード, 人数A, 特別徴収税額A," & _
     " 人数B, 特別徴収税額B, 一括特別徴収税額B, 人数C, 特別徴収税額C," & _
     " 人数D, 特別徴収税額D, 指定番号 INTO " & strTName & " FROM 集計;"

Docmd.RunSQL strSQL
'もしくはExecuteで

な感じで
・ツリー全体表示

【7288】テーブル作成クエリ
質問  チリ子  - 06/2/16(木) 16:05 -

引用なし
パスワード
   こんにちは。
テーブル作成クエリで質問があります。
テーブル作成クエリを利用してクエリ(集計)のデータを新テーブル(TEST)を作成しているのですが、これでは、テーブル作成クエリを実行する度にTESTテーブルに上書きされるかたちになります。
これを、上書きせず、新規でテーブルが出来るような方法はないでしょうか?
たとえば、テーブル作成クエリを実行すると、保存名を聞いてきてその名前で新規テーブルができるという内容です。
SQLビューでINTOの後に何か保存名を指定できるようなことを付け加えたら出来るのではないかと思い、いろいろと考えてみましたが、分かりません。
どなたかご教授下さい。
宜しくお願致します。

SELECT 集計.[No], 集計.都道府県, 集計.市町村名, 集計.コード, 集計.人数A, 集計.特別徴収税額A, 集計.人数B, 集計.特別徴収税額B, 集計.一括特別徴収税額B, 集計.人数C, 集計.特別徴収税額C, 集計.人数D, 集計.特別徴収税額D, 集計.指定番号 INTO TEST
FROM 集計;
・ツリー全体表示

【7287】Re:追加質問:テーブル・マクロの変更がで...
回答  たん  - 06/2/16(木) 14:00 -

引用なし
パスワード
   >MDEに変換すれば、フォーム・レポートのデザインは出来なくなりますが
>テーブルはデータの削除が出来てしまします。マクロも変更できてしまいます。
>すべてデザインの変更など第3者ができない(さわれない)様にできる方法は
>ありますか?

下記で似たような話があります。
http://www2.moug.net/bbs/acm_v/20051125000011.htm

また、リンクテーブルである限り、データ自体の削除は可能ですね。
フォームからの処理なら、フォーム自体の「削除の許可」をいいえ。

テーブル自体を処理されたくないなら、データベースプロパティを非表示に
する等ぐらい。

あとは、データ部mdbにデータベースパスワードを張るぐらいか。

# どれもやってみるなら、バックアップを取ってからにして下さい。
# (自己責任です。)

それでも駄目なら、DAOを止めて、ADOで開発し直す。

# それでも所詮、Windowsファイルシステムなので、コピーされて弄られるのは
# 回避できませんが。
・ツリー全体表示

【7286】Re:Accessの中でファイルの解凍処理を行え...
発言  クロ  - 06/2/16(木) 11:36 -

引用なし
パスワード
   参考までに
http://www.penhagi.com/access/soft/dll_lzh/dll_lzh.htm
・ツリー全体表示

【7285】Accessの中でファイルの解凍処理を行える...
質問  Whitworth  - 06/2/16(木) 10:36 -

引用なし
パスワード
   圧縮されたファイルを解凍ツールを使って解凍する処理を
Accessのモジュール内で自動化したいと考えていますが、
そういう処理を実行することは可能でしょうか。
ちなみに、開発環境のOSはWinXPでAccessは2000です。
・ツリー全体表示

【7284】Re:クエリでテーブルの構造を変更するには
回答  小僧  - 06/2/16(木) 0:19 -

引用なし
パスワード
   ▼kumakai さん:
こんばんは。

> こんな問題を抱えています。

お望みの事は Union クエリ と クロス集計 クエリの組み合わせでできそうですね。


SELECT 工程.工程名, 工程.工程名 & "_開始" AS F1, 工程.開始
FROM 工程
UNION ALL
SELECT 工程.工程名, 工程.工程名 & "_終了" AS F1, 工程.終了
FROM 工程;


まず、上記の SQL をクエリの SQLビュー に記載して結果を確認されてみて下さい。


更にその結果を使ってクロス集計クエリを作ります。

TRANSFORM First(P.開始) AS 開始の先頭
SELECT P.工程名
FROM [
SELECT 工程.工程名, 工程.工程名 & "_開始" AS F1, 工程.開始
FROM 工程
UNION ALL
SELECT 工程.工程名,工程.工程名 & "_終了" AS F1, 工程.終了
FROM 工程
]. AS P
GROUP BY P.工程名
PIVOT P.F1;

同じく SQLビューに記載して、結果を確認されてみて下さい。
・ツリー全体表示

296 / 500 ページ ←次へ | 前へ→
ページ:  ┃  記事番号:
1084677
(SS)C-BOARD v3.8 is Free