Access VBA質問箱 IV

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

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


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

【3960】Re:いいフォームの作り方をアドバイス願い...
質問  えなりん  - 04/12/6(月) 16:47 -

引用なし
パスワード
   クロ師匠!
愚弟子を助けてください!

検索フォーム(メイン):検索年、検索月
一覧フォーム(サブ) :発注年月日、金額(発注年月日でSUM)
  ※レコード移動時イベントで Me.Parent!詳細フォーム.Requery
詳細フォーム(サブ) :発注年月日、取引先名、商品名、金額
  ※【再計算】ボタンで Me.Parent!一覧フォーム.Requery

詳細フォームで新たにレコードを入力したり、「金額」を変更した時は【再計算】ボタンに問題はなかったのですが、「発注年月日」や「取引先名」を変更しようとすると
【実行時エラー2118 Requeryの前にカレントフィールドを保存しろ!】
と、Accessに怒られてしまいました。
思いつくままに、色々な所に docmd.save を入れてみたりしたのですが、愚弟子には解決できません。
よろしくお願いいたします。
・ツリー全体表示

【3959】Re:余談
お礼  えなりん  - 04/12/6(月) 16:36 -

引用なし
パスワード
   ひろのしまさん
アドバイスありがとうございます。

初心者のくせに高度なことをやりたがるから
知恵熱が出そうです。
・ツリー全体表示

【3958】Re:小数以下を切り捨てにすると正確に計算...
回答  Gin_II  - 04/12/6(月) 15:53 -

引用なし
パスワード
   > 式1:=Int([数量]*[単価])とコントロールソースに入力すると

小数点のある値は、数値型の浮動小数点形式に自動的に変換されます。
CCur 関数を使って、通貨型として計算させれば大丈夫だと思います。

Int(CCur([数量])*[単価])
・ツリー全体表示

【3957】Re:空のデータベースの作成
回答  Gin_II  - 04/12/6(月) 15:51 -

引用なし
パスワード
   >モジュールで空のデータベースを作成するにはどうすればいいですか?

CreateDatabase メソッド
をヘルプで確認してください。
・ツリー全体表示

【3956】空のデータベースの作成
質問  TAKESHI E-MAIL  - 04/12/6(月) 15:37 -

引用なし
パスワード
   モジュールで空のデータベースを作成するにはどうすればいいですか?
やりたいことは、テーブルを新しく作成したデータベースに持っていきたいのです。
・ツリー全体表示

【3955】小数以下を切り捨てにすると正確に計算が...
質問  momo  - 04/12/6(月) 14:21 -

引用なし
パスワード
   困っていますお願いします。

フォーム上で、数量と単価を入力して結果を表示するようにしたのですが、
"金額を小数以下は切り捨て"にすると正しく計算が出ない時があります。
どのようにすれば良いかアドバイスをお願いします。


 式1:=Int([数量]*[単価])とコントロールソースに入力すると

 数量  単価
 1.4 ×7350=10290 ○
 2.3 ×6800=15639 ×→15640に成らない。
 0.1 ×195=19   ○
 

 式2:=([数量]*[単価])とコントロールソースに入力

 数量  単価
 1.4 ×7350=10290 ○
 2.3 ×6800=15640 ○
 0.1 ×195=20   × →19に成らない。

"Int"を付けると正確に成らないところが発生して、
"Int"を付けないと他の数字で正確に成らないところが発生します 
これを防ぐには何かいい方法が無いでしょうか?

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

【3954】Re:shellの参照設定
お礼  ひろのしま  - 04/12/6(月) 9:11 -

引用なし
パスワード
   ▼YU-TANG さん:
>こんにちは、YU-TANG です。
>
>> shellの場合やFileSystemObjectのものだと、Asの後に何を選択すれば
>> よいのかが出てきません。
>
>アーリーバインディングの型宣言は、FileSystemObject なら以下の通り。
>
>【FileSystemObject】
>Microsoft Scripting Runtime ライブラリに参照設定の上、
>「Dim fso As Scripting.FileSystemObject」(ライブラリ名は省略可)
>のように宣言。
>
>Shell は、俗に「Shell」と呼ばれるクラスが 2 つ有って、文面からだけ
>ではどちらを指すのか私には判別できなかったので、両方載せておきます。
>
>【Shell】
>Microsoft Shell Controls And Automation ライブラリに参照設定の上、
>「Dim shl As Shell32.Shell」(ライブラリ名は省略可)のように宣言。
>
>― あるいは ―
>
>Windows Script Host Object Model ライブラリに参照設定の上、
>「Dim ws As IWshRuntimeLibrary.WshShell」(ライブラリ名は省略可)
>のように宣言。

ひろのしまです。どうもありがとうございます。dim Fso as Object だと、.(ドット)以降のメソッドやプロパティの参照が出来ないので不安になるんですよ。でもこれがあれば安心です。たいへん助かりました。
・ツリー全体表示

【3953】Re:帳票フォームで交互に色をつけるには
発言  GEN E-MAIL  - 04/12/5(日) 22:01 -

引用なし
パスワード
   ▼クロ さん:
>http://accessclub.jp/bbs3/0037/superbeg15094.html
>上記のBBSスレッドの谷牙さんのレスが参考になると思います。

ありがとうございます。
早速試してみました。
帳票フォームで表示自体は、うまくいきましたが、そのフォームに編集を加えると、一部点滅を繰り返してしまい、うまくいきませんでした。どうやら、編集した段階で、開くイベントが繰り返されてしまうようです。

ほかのサイトでADOやDAOを使って、現在のレコードのNO.を知る方法が載っていたので、それを試してみました。若干重いように感じるのですが、うまくは、いきました。

Public Function GetColor_FS(frm As Form) As Boolean
'
' レコード番号を計算して偶数なら True 奇数なら False を返します
'
 Dim rs As DAO.Recordset
 Dim lngRecno As Long
 
 On Error Resume Next
 With frm
  Set rs = .RecordsetClone
  rs.Bookmark = .Bookmark
  If rs.EOF Or rs.BOF Then
   lngRecno = 0
  ElseIf Err.Number = 0 Then
   lngRecno = rs.AbsolutePosition + 1 '?????
  Else
   Err.Clear
   rs.MoveLast
   lngRecno = rs.AbsolutePosition + 2 '?????
  End If
 End With
 GetColor_FS = IIf(lngRecno Mod 2, False, True)
End Function

いまいち意味が分からないところがあるのですが、もっとよい方法があれば、教えてください。
・ツリー全体表示

【3952】Re:shellの参照設定
回答  YU-TANG WEB  - 04/12/4(土) 13:32 -

引用なし
パスワード
   こんにちは、YU-TANG です。

> shellの場合やFileSystemObjectのものだと、Asの後に何を選択すれば
> よいのかが出てきません。

アーリーバインディングの型宣言は、FileSystemObject なら以下の通り。

【FileSystemObject】
Microsoft Scripting Runtime ライブラリに参照設定の上、
「Dim fso As Scripting.FileSystemObject」(ライブラリ名は省略可)
のように宣言。

Shell は、俗に「Shell」と呼ばれるクラスが 2 つ有って、文面からだけ
ではどちらを指すのか私には判別できなかったので、両方載せておきます。

【Shell】
Microsoft Shell Controls And Automation ライブラリに参照設定の上、
「Dim shl As Shell32.Shell」(ライブラリ名は省略可)のように宣言。

― あるいは ―

Windows Script Host Object Model ライブラリに参照設定の上、
「Dim ws As IWshRuntimeLibrary.WshShell」(ライブラリ名は省略可)
のように宣言。
・ツリー全体表示

【3951】Re:Requeryについて
質問  キッコーマン  - 04/12/4(土) 12:57 -

引用なし
パスワード
   ぬぅ さんへ

こんにちわ。お返事ありがとう。

>Me.Requery は、メインフォームをRequeryしていることになりますね。
>サブフォームをRequeryするには、Me![サブフォーム名].Requery ではないでしょうか?

下記のように書き換えてみたんですが、やはりなぜか1件しか表示されません。
書くタイミングはあっていると思うんですが、他になにか影響すること等ありましたら
ぜひお教えください。

**追加クエリの実行(サブフォームのレコードソースであるワークテーブルへ)******

DoCmd.SetWarnings False

DoCmd.OpenQuery "Q_CHECK1_04", acViewNormal, acEdit ←追加クエリの実行

DoCmd.SetWarnings True

'Me.Requery ←コメントブロックしてみた

Me!SUB_KSMD06.Requery ←サブフォーム「SUB_KSMD06」をRequery

***********************************************************************
・ツリー全体表示

【3950】余談
発言  ひろのしま  - 04/12/3(金) 17:26 -

引用なし
パスワード
   フォームの更新に関して
'自分以外のフォームを同時に開いている時にのみ更新を行う。
If application.currentProject.allforms("該当フォーム").isloaded=true Then
Forms("該当フォーム").refresh 
  '該当フォーム更新
Forms("該当フォーム").リストボックス名.Reuery
 'リストボックス更新。refreshメソッドは多分ない。
Forms("該当フォーム")("サブフォーム").form.Refresh
 'サブフォームの更新
else
msgbox "該当フォームは開いていませんね。",vbInformation
end if

自動的に他のフォーム起動中にそのフォームを更新するコマンドです。
多分便利かな?
・ツリー全体表示

【3949】Re:Requeryについて
回答  ぬぅ  - 04/12/3(金) 17:00 -

引用なし
パスワード
   キッコーマンさん、こんにちは。

>→そうですね、ちゃんと追加クエリのあとには ”Me.Requery”を書いています。
> なにが原因なのか困っているのです。。。Me.Requeryのほかにしないといけない
> Requeryがあるのでしょうか?

Me.Requery は、メインフォームをRequeryしていることになりますね。
サブフォームをRequeryするには、Me![サブフォーム名].Requery ではないでしょうか?
・ツリー全体表示

【3948】shellの参照設定
質問  ひろしま  - 04/12/3(金) 15:17 -

引用なし
パスワード
   Accessのみではないと思いますが、
dim objEXL as Object
set objEXL =createobject("Excel.application")
(略)
など、Access以外のアプリケーションを起動するときにこういった記述をしますが、
dim objEXL as Excel.application
set ObjEXL=createobject("Excel.application")
とすれば単純にobjEXLの後に.を打てば参照プロパティなどが出てきますが、
shellの場合やFileSystemObjectのものだと、Asの後に何を選択すればよいのかが出てきません。
ごく単純な質問ですが、どうか、よい手ほどきをお願いします。
・ツリー全体表示

【3947】Re:いいフォームの作り方をアドバイス願い...
お礼  えなりん  - 04/12/3(金) 14:18 -

引用なし
パスワード
   ありがとうございます!

師匠と呼ばせてください!
・ツリー全体表示

【3946】Re:Requeryについて
質問  キッコーマン  - 04/12/3(金) 13:13 -

引用なし
パスワード
   ▼ぬぅ さん:
ぬぅさん、お返事ありがとうございます。

>サブフォームのレコードソースは、作業用のワークテーブルで、
>抽出したデータはそのワークテーブルに書き込まれているのでしょうか?
→サブフォームのレコードソースはおっしゃる通りワークテーブルです。
 途中、中断してテーブルを確認しても検索条件どおりのレコードが入っていることは確 認できています。

>テーブルに書き込んだ後でサブフォームをRequeryされているなら
>特に問題はないかと思いますが・・・何かあるのかもしれませんね?
→そうですね、ちゃんと追加クエリのあとには ”Me.Requery”を書いています。
 なにが原因なのか困っているのです。。。Me.Requeryのほかにしないといけない
 Requeryがあるのでしょうか?

>ところで、少し確認していただきたいのですが、サブフォームの
>既定のビューは何になっているのでしょうか?
→サブフォームの既定ビューは「帳票フォーム」にしています。
 なにか問題ありますかね?

よければご回答ください。お願いいたします。
・ツリー全体表示

【3945】oracle接続
質問  ベル  - 04/12/3(金) 9:44 -

引用なし
パスワード
   お世話になります。

下記【3942】の投稿と同じ内容なのですが、
更新するファイルがoracleDBとリンクしている為、
mdbファイルを開く度にログインパスワードを要求されます。
自動的にログインしてデータ更新する方法がありましたらご教授ください。

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

【3943】Re:タイマー起動
回答  クロ  - 04/12/2(木) 17:48 -

引用なし
パスワード
   単にタスクマネージャでmdbを指定してあとは
AUTOEXECマクロで処理をさせればいいのでは?
・ツリー全体表示

【3942】タイマー起動
質問  マモ E-MAIL  - 04/12/2(木) 16:42 -

引用なし
パスワード
   毎日時間でACCESSを自動的に実行させたい。
1.目的 毎日サーバー間で自動にデータ転送させる。

アドバイス宜しくお願いします。

  
・ツリー全体表示

【3941】Re:帳票フォームで交互に色をつけるには
回答  クロ  - 04/12/2(木) 15:39 -

引用なし
パスワード
   http://accessclub.jp/bbs3/0037/superbeg15094.html
上記のBBSスレッドの谷牙さんのレスが参考になると思います。
・ツリー全体表示

【3940】Re:Requeryについて
発言  ぬぅ  - 04/12/2(木) 13:46 -

引用なし
パスワード
   キッコーマン さん、こんにちは。

サブフォームのレコードソースは、作業用のワークテーブルで、
抽出したデータはそのワークテーブルに書き込まれているのでしょうか?
テーブルに書き込んだ後でサブフォームをRequeryされているなら
特に問題はないかと思いますが・・・何かあるのかもしれませんね?
ところで、少し確認していただきたいのですが、サブフォームの
既定のビューは何になっているのでしょうか?
・ツリー全体表示

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