Access VBA質問箱 IV

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

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


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

【6840】Re:任意のレコードを更新禁止にしたい
回答  Gin_II  - 05/11/22(火) 8:51 -

引用なし
パスワード
   > テーブルにある任意のレコードを更新禁止にするにはどうすればいいのでしょうか?
> チェックの終わったレコードは他の人が書き換えないようにしたいのですが?

テーブルのデータシートビューで制限したいのでしょうか?
特定のレコードを、データシートビューでってことなら、ムリだと思いますけど。
・ツリー全体表示

【6839】任意のレコードを更新禁止にしたい
質問  村津  - 05/11/22(火) 7:23 -

引用なし
パスワード
   テーブルのなかでチェックの終わったレコードだけ書き換えしないように
更新禁止にしたいのですが どうすればいいでしょうか?
・ツリー全体表示

【6838】Re:最頻値の求め方
お礼  POKOTE  - 05/11/21(月) 16:07 -

引用なし
パスワード
   ▼小僧 さん:
ありがとうございます!!
早速明日試してみたいと思います。
また分からないところがありましたら、
ご指導よろしくお願い致します。
・ツリー全体表示

【6837】Re:最頻値の求め方
回答  小僧  - 05/11/21(月) 15:20 -

引用なし
パスワード
   ▼POKOTE さん:
こんにちは。

あまり綺麗なやり方でないので
他の回答者からもっと良い方法が提案されるかもしれませんが、

SELECT テーブル名.値2, テーブル名.データ内容, Count(テーブル名.データ内容) AS カウント
FROM テーブル名
GROUP BY テーブル名.値2, テーブル名.データ内容;

上記 SQL をクエリの SQL ビューに記述して、
「中間クエリ」という名前で保存した後、

SELECT P.値2, 中間クエリ.データ内容, P.カウントの最大
FROM [
SELECT 中間クエリ.値2, Max(中間クエリ.カウント) AS カウントの最大
FROM 中間クエリ
GROUP BY 中間クエリ.値2
]. AS P
INNER JOIN 中間クエリ
ON (P.カウントの最大 = 中間クエリ.カウント) AND (P.値2 = 中間クエリ.値2)
GROUP BY P.値2, 中間クエリ.データ内容, P.カウントの最大;

こんな SQL で結果を確認されてみてください。
・ツリー全体表示

【6836】Re:ホイールボタンでのレコード移動
回答  たぬき  - 05/11/21(月) 13:37 -

引用なし
パスワード
   詳しくはわかりませんがACCESSはいろいろ処理が重い
らしく変な処理をしようとすると固まったりしました。
(メッセージを受け取るのがおいつかない?)

またどこにも書いてませんが、フォームは一つのよう
に見えていくつかのウィンドウをまとめているようで
す。(レコードセレクタや移動ボタン等)
ハンドルを取るのが大変だったりします。
本来のデータの処理以外にも沢山処理がありそうです。

あとメンテがしにくいとか、バージョンで動かないも
のもあるようです。

ACCESSは比較的楽にできることが利点だと思うので、
あまり複雑なことはやらない方がよいと思います。
・ツリー全体表示

【6835】最頻値の求め方
質問  POKOTE  - 05/11/19(土) 18:14 -

引用なし
パスワード
   いつもお世話になっています。
Excelではmode関数で最頻値は求められますが、
Accessではその関数は使えないようです。

データが100万以上あるのでExcelで処理できません。
どのようにしたらいいでしょうか?

元テーブルは、
------------------------------------------------------
日付 時刻 値1  値2  データ種類  データ内容

------------------------------------------------------
となっていますが、値2毎にデータ内容の最頻値を
調べたいのです。

よろしくお願いします。
・ツリー全体表示

【6834】Re:ホイールボタンでのレコード移動
質問  中直 E-MAIL  - 05/11/19(土) 13:12 -

引用なし
パスワード
   ご回答ありがとうございます。
質問があります。
「ACCESSでサブクラス化はしたくはない・・」
という事は何か弊害があるとか、影響を及ぼす可能性
があるという事でしょうか。

以上、よろしくお願い致します。


▼たぬき さん:
>基本的にホイール関連の関数等はACCESSにはありませんので
>WM_MouseWheelメッセージを捕まえないといけません。
>サブクラス化を使う方法とフックを使う方法があります。
>
>その他ダイレクトXを使う方法などがあります。
>
>サブクラス化の方法は以下を参照してください。
>http://www.accessclub.jp/bbs2/0027/beginter08905.html
>
>
>ACCESSでサブクラス化はしたくはないですけど・・・
・ツリー全体表示

【6833】Re:ホイールボタンでのレコード移動
回答  たぬき  - 05/11/18(金) 17:11 -

引用なし
パスワード
   基本的にホイール関連の関数等はACCESSにはありませんので
WM_MouseWheelメッセージを捕まえないといけません。
サブクラス化を使う方法とフックを使う方法があります。

その他ダイレクトXを使う方法などがあります。

サブクラス化の方法は以下を参照してください。
http://www.accessclub.jp/bbs2/0027/beginter08905.html


ACCESSでサブクラス化はしたくはないですけど・・・
・ツリー全体表示

【6831】テキストのコピーについて
質問   E-MAIL  - 05/11/18(金) 12:58 -

引用なし
パスワード
   現在フォーム[F_001入力]には、データ入力用のテキストボックスが3つ配置
されています。仮に[aaa1][bbb1][ccc1]とします。
コマンドボタンを押すことで、その下にコピーしたテキストボックスを配置
したいのですが、どうしたら良いのでしょうか?
テキストボックスの名前も[aaa2][bbb2][ccc2]というようにインクリメント
したいのですが・・・。
ご教授お願いします。
・ツリー全体表示

【6829】ホイールボタンでのレコード移動
質問  中直 E-MAIL  - 05/11/18(金) 11:13 -

引用なし
パスワード
   いつもお世話になっております。

アクセスで項目連結で入力画面を作りました。
マウスのホイールボタンでレコードが移動してしまいます。
動作環境等を調べたのですがわかりませんでした。
マウスのホイールボタンでのレコード移動をできないように
するにはどうしたらよいのでしょうか。

以上、よろしくお願い致します。
・ツリー全体表示

【6828】Re:コンパイルエラーで困っています。
お礼   E-MAIL  - 05/11/17(木) 19:10 -

引用なし
パスワード
   解決しました。
原因は、「!」がない箇所がプログラム中にあったためでした。

返事が遅くなりすみませんでした。
・ツリー全体表示

【6827】Re:特定の行をインポートするには
お礼  にしもり  - 05/11/16(水) 13:48 -

引用なし
パスワード
   ▼小僧 さん:

おもしろいですね!
○の使い方をはじめてしりました。
ローカルウィンドウの使い方を初めて知りました。
",1:1"
",1:1,2:2"
",1:1,2:2,4:4"
となっていくんですね。
そして最後にはstrDelは1:1,2:2,4:4になるんですね。
ロジックをよくみたら確かにそうなっていました。
ひさびさの感激を味あわせていただきました。
ありがとうございました。
・ツリー全体表示

【6826】Re:特定の行をインポートするには
発言  小僧  - 05/11/16(水) 13:00 -

引用なし
パスワード
   ▼にしもり さん:
こんにちは。

>strDel=MID(strDel, 2)を終えた時点でstrDelには4:4が入っているのですよね。
>これでなぜRange(1:1)とRange(2:2)とRange(4:4)がデリートできるのですか?

strDel が 4:4 ですと、疑問に思われている通り 4 行目しか削除できません。

>  For i = 0 To UBound(Fuyo, 1)
>    strDel = strDel & "," & Fuyo(i) & ":" & Fuyo(i)
>  Next

この行で strDel の値を変化させています。


>これがArrey関数というものなのですか。


こちらも含めて、デバッグの仕方を説明させて頂きます。

まずブレークポイントを設定します。

>Sub 特定行を削除してExcelコピー()

の行の左の欄外をクリックして「○」を付けます。
(解らなかった場合は、2 行目に Stop と記述して下さい。)

この状態でコードを実行すると、
ブレークポイントでコードの実行が中断されます。

「F8」キーでステップ実行、「F5」キーで最後までコードが進行します。

また、ツールバーの [表示] から [ローカルウィンドウ] を表示させて下さい。

ステップ実行をする度に、変数の中身が色々と変わっていく様子が
伺えると思われます。
・ツリー全体表示

【6825】Re:特定の行をインポートするには
質問  にしもり  - 05/11/16(水) 11:37 -

引用なし
パスワード
   ▼小僧 さん:
こんにちは。
おかげさまで希望とおりのファイルが出来るようになりました。

が、教えてください。
strDel=MID(strDel, 2)を終えた時点でstrDelには4:4が入っているのですよね。
これでなぜRange(1:1)とRange(2:2)とRange(4:4)がデリートできるのですか?
これがArrey関数というものなのですか。
素人ですみませんが狐につままれたようです。
・ツリー全体表示

【6824】Re: 環境を整えるという事
回答  たん  - 05/11/15(火) 17:11 -

引用なし
パスワード
   >たんさんのおっしゃるように環境の不足は否めない状況です。
>顧客より提供される環境についてはどうしようもないところもあるので
>自分で作れる環境の1つとして、先日Access・VBA関連の書籍を数冊購入し、
>職場に常備しておくようにしました。

うん。自分で環境を整えようとする姿勢は素晴らしいです。
ただ、社内の業務として行なっているのであれば、例えば、購入した書籍は
個人出費ではなく、社内で使うものなので業務出費にする等の形にすべきと
思います。

また、依頼自体の難易度も上がっているのであれば、上司等に相談し、
自身のマシンだけでも良いので、ヘルプを入れる事が出来ないかというのを
検討すべきです。

いまのままでは、社内のプログラムを作成する為に、質問者自身が身銭を
切っているのと変わらないと思います。
そういう部分も変えるのが、良い環境を作るという事だと私は思います。
・ツリー全体表示

【6823】Re:特定の行をインポートするには
お礼  にしもり  - 05/11/15(火) 16:35 -

引用なし
パスワード
   ▼小僧 さん:
ありがとうございました!
ご指摘のとおり、他の人が作ったEXCELです。
小僧さんはじめ皆様のアドバイスが高度であればあるほど自分の実力とのギャップを思い知らされます。精進致します。
・ツリー全体表示

【6822】Re: もうちょい言うね
発言  NK  - 05/11/15(火) 14:07 -

引用なし
パスワード
   ▼クロ さん:
>ガンバレ!
>#ってこんなレスでいいのか?自分…
>
>ネットはマニュアルに劣らないぐらい凡例がゴロゴロしてます。
>これを利用するのも1つの手です。
>ただ、そのコードを解読する参考書(ヘルプ)は必要かもです。
>
>いずれにしても、お互いに前向きに頑張りましょう!

ありがとうございます^^
今スレにレスを頂くまでオンラインヘルプの存在すら知らなかった私です。
こういった掲示板だけでなく、汎用例を記したサイトもたくさん
ありますので色々と活用し、精進したいと思います。
・ツリー全体表示

【6821】Re: もうちょい言うね
発言  クロ  - 05/11/15(火) 13:48 -

引用なし
パスワード
   ガンバレ!
#ってこんなレスでいいのか?自分…

ネットはマニュアルに劣らないぐらい凡例がゴロゴロしてます。
これを利用するのも1つの手です。
ただ、そのコードを解読する参考書(ヘルプ)は必要かもです。

いずれにしても、お互いに前向きに頑張りましょう!
・ツリー全体表示

【6820】Re:特定の行をインポートするには
回答  小僧  - 05/11/15(火) 13:40 -

引用なし
パスワード
   ▼にしもり さん:
こんにちは。

[#4871]2行目からインポートしたい

にもありましたが、取り込み先の Excel の作成が他部署ですと
向こうの都合に合わせたフォーマットにされてしまいがちですよね…。

といった愚痴をなくすため(?)に汎用のコードを組んでみました。

Sub 特定行を削除してExcelコピー()
'要参照 Microsoft Excel x.x Object Library
Dim xlsApp As New Excel.Application
Dim xlsWkb As Excel.Workbook
Dim xlsSht As Excel.Worksheet
Dim xName As String
Dim sName As String
Dim Fuyo() As Variant
Dim strDel As String
Dim i As Long

  xName = "C:\test.xls"
  sName = "Sheet1"
  
'不要行をセット
  Fuyo = Array(1, 2, 4)
  
  For i = 0 To UBound(Fuyo, 1)
    strDel = strDel & "," & Fuyo(i) & ":" & Fuyo(i)
  Next
    strDel = MID(strDel, 2)

    xlsApp.Visible = True
  Set xlsWkb = xlsApp.Workbooks.Open(xName)
  Set xlsSht = xlsWkb.Sheets(sName)
    xlsSht.Range(strDel).Delete xlUp
    xlsWkb.SaveAs CurrentProject.Path & "\temp.xls"
  Set xlsSht = Nothing
    xlsWkb.Close False: Set xlsWkb = Nothing
    xlsApp.Quit: Set xlsApp = Nothing
End Sub

変数 Fuyo で定義された行を削ったファイルが
mdb と同じフォルダに「temp.xls」という名前で作成されるかと思います。

あとはこのファイルを TransferSpreadsheet メソッドで取り込めますよね。

※ ファイルの重複チェックや存在チェックなどは考慮しておりません。
  色々過去ログ等を参考にされてみて下さい。
・ツリー全体表示

【6819】Re: もうちょい言うね
発言  NK  - 05/11/15(火) 13:33 -

引用なし
パスワード
   >▼たん さん:

こんにちは。色々とご指摘頂き、ありがとうございます。
この職場が立ち上がってこれまで2年ほどの間、ほぼ自力で
何とか形になるものを作ってきました。
(もちろん、今では見ると恥ずかしくなるような出来ですが^^;)

まぁ本職ではありませんから、依頼といっても
『もし出来るんだったら作ってみて』程度の依頼なので
自分としてもその程度の感覚でやっていました。

しかし、回を追うごとに依頼内容も複雑になってきており、
最近になってこのサイトの存在を知り、利用させて頂いておりました。

たんさんのおっしゃるように環境の不足は否めない状況です。
顧客より提供される環境についてはどうしようもないところもあるので
自分で作れる環境の1つとして、先日Access・VBA関連の書籍を数冊購入し、
職場に常備しておくようにしました。

今迄やってきた事やこちらで皆様に教えて頂いた事を踏まえて読みましたが
まだまだそのマニュアルだけでは補えない事も多いと感じました。

今後もまた自分の知識・マニュアルで補えない点がありましたら
皆様の力を拝借したいと思っております。
その際は何卒よろしくお願い致します。
・ツリー全体表示

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