Microsoft Access 掲示板

views
4 フォロー
6,283 件中 1,961 から 2,000 までを表示しています。
4
たく 2023/03/06 (月) 01:58:45 修正 5acda@0a7dd

申し訳ありません 使い方、確認不足でした。

Dim FirstDay As Date

'予定表示プロシージャ
Public Sub SetSchedule()
Dim i As Integer, rs As DAO.Recordset, zissagyou As String
    zissagyou = "実作業"
    For i = 1 To 42
        Me("T" & i).Caption = ""
    Next
    Set rs = CurrentDb.OpenRecordset( _
        "SELECT 作業日時,時間,SUM(時間の合計) FROM T_設計_日報入力 WHERE " & _
        "日時>#" & FirstDay & "# AND 日時<=#" & FirstDay + 42 & "# AND 作業No = '" & Me.txb作業No & "' AND 作業分類 = " & zissagyou & " GROUP BY 日時,時間,作業分類", _
     dbOpenForwardOnly, dbReadOnly)

    Do Until rs.EOF
        With Me("T" & rs!日時 - FirstDay)
            .Caption = .Caption & rs!時間の合計 & "H" & vbCrLf
        End With
        rs.MoveNext
    Loop
    rs.Close: Set rs = Nothing
End Sub

になります
作業No、作業分類は短いテキストです

SELECT T_設計_日報入力.作業No, T_設計_日報入力.作業名No, Sum(T_設計_日報入力.時間) AS 時間の合計
FROM T_設計_日報入力
WHERE (((T_設計_日報入力.日時)>=[Forms]![F_設計_実績確認_伝票処理]![FROM] And (T_設計_日報入力.日時)<=[Forms]![F_設計_実績確認_伝票処理]![TO]))
GROUP BY T_設計_日報入力.作業No, T_設計_日報入力.作業名No
HAVING (((T_設計_日報入力.作業No)=[Forms]![F_設計_実績確認_伝票処理]![txb伝票No検索]));

このクエリのSQLをベースに考えた時どうVBAにしたらよいか教えてほしいです

3
hatena 2023/03/05 (日) 13:40:32 修正 >> 2

コードは画像ではなく実際のものをコピーして貼り付けてください。その場合、マークダウンのコードブロックにしてください。詳細は下記を参照ください。

Microsoft Access 掲示板 の使い方 Microsoft Access 掲示板 - zawazawa

あと、貼り付けるコードは、変数の宣言部分、代入部分を含めて貼り付けてください。画像のコードでは FirstDayの宣言、代入のコードがありません。

作業No、作業分類 のフィールドのデータ型も提示してください。

2
たく 2023/03/05 (日) 07:32:13 5acda@0a7dd

パラメータ設定しているクエリだったのでエラー?がでたみたいでした。。

試行錯誤しテーブルから抽出条件、グループ化のパラメータ設定をしているのですが、
『パラメーターが少なすぎます2を指定してください。』と出てきます。
どこが間違っているか教えてほしいです。画像1

db.OpenRecordset("SELECT~~~のように記述したいのですが
このクエリのSQLをベースに考えた時どうVBAにしたらよいか教えてほしいです画像1

4
にわん 2023/03/03 (金) 14:40:43 76589@ec061

皆さん丁寧に教えていただきありがとうございます。
Officeのバージョンは合わせた方がいいみたいですね。
それを考えるとお勧めしていただいた365が良さそうに思います。
ランタイム版についても教えていただきありがとうございます。
いろいろと調べて検討してみます。
ありがとうございました。

11
チョコ 2023/03/02 (木) 18:34:42 7a4e5@dab18

やはりバグでしたか…
マイクロソフトに報告してみようかと…
ナビゲーションフォームでかなり作り込んでしまったので
なんとか直ってほしいと思ってしまいます。

今回はありがとう御座いました。

3
hiroton 2023/03/02 (木) 15:33:53 834cf@f966d

officeのバージョン違い、エディション違いのインストールはなかなかに複雑です
汎用の回答としては「組み合わせによってはできるものもある」程度の後ろ向きな回答になってしまいます。
bit(32bit/64bit)
インストール形式(windowsインストーラー(MSI)/C2R)
これらをキーワードにご自身の環境とインストール可否を調べて見てください

ネットワークが繋がっている2台のパソコンで同時に使いたい場合、どちらのパソコンにもAccessをインストールする必要がありますか?

「はい(YES)」の回答になりますが、出来あがったデータベースを使用するだけであればランタイム版(Microsoftのサイトから無料ダウンロード)だけで動きます
「開発用に1本製品版を購入すれば良い」でしょう

2
hatena 2023/03/02 (木) 15:29:16 修正

買い切りの2021を考えていますが、パソコンに入っているOfficeは2016です。
この場合、Officeも2021で合わせる必要がありますか?

追加された新機能を使わなければたいていは動くと思います。が、保証はできません。できればバージョンは合わせた方がいいでしょう。

それよりも、
Office2016のサポートは2025年10月14日まで、Office2021は2026年10月13日までです。

マイクロソフトOfficeのサポート期限

それを考慮したら MicroSoft365 で毎年課金して常に最新版を使えるようにしてもいいように思います。

ネットワークが繋がっている2台のパソコンで同時に使いたい場合、どちらのパソコンにもAccessをインストールする必要がありますか?
それともファイルを保存するパソコンだけでいいですか?

2台のパソコンにインストールする必要があります。
同時にということが、二人で同時に使用するということなら、Officeのアカウントも2つ必要です。

1
りんご 2023/03/02 (木) 14:14:27 935bc@0e907

こういうのは、余力がある時にさっさと決断するしか無いんですよ。遅かれ早かれなので。
指数関数的な従量課金(コスト)が想定されるなら躊躇しますけど、挙げられているような不具合は事務的に処理するだけです。

10

accdbファイルはエラーは出ませんが、accdeだと提示のエラーになりますね。
新規にaccdeファイルを作成してみましたが、やはり同じエラーがでますね。

ナビゲーションフォームに問題がありそうなので、ナビゲーションフォームを一から作り直すか、
ナビゲーションフォームはやめて、サブフォームで同様のものを作成するということを試してみてはどうですか。

私自身は、ナビゲーションフォームが実装されたとき、便利そうとおもって使ってみましたが、いろいろ制限が多かったし、おなじことはサブフォームを使って実現できるので、今は使っていません。

9

ファイル受け取りました。
時間が取れたら動作確認してみます。
しばらくお待ちください。

8
チョコ 2023/03/01 (水) 19:08:06 7a4e5@dab18

hatena様、返信が遅くなりました。
早速お送りいたしましたのでよろしくお願いいたします。

7
hatena 2023/02/28 (火) 12:21:28 修正

チョコさん、何度もお手数おかけしてすみません。どうも送信フォームがうまく動作していないようなので、下記のメールアドレスへファイルを添付して送信してもらえますか。
受け取ったら、メールアドレスは削除します。(削除済み)

2
すぬぅ 2023/02/26 (日) 16:24:51 0d9bd@6f7d6

そうですか…。標準のActiveXコントロールの中にあるのに残念です。
Windows10+Access2013で使っていたのですが,そのときも,Acrobat Reader DCとの相性が悪く,Acrobat Reader Ⅺに
戻して使っていました。今回も,新しく買ったパソコンで,今までのプログラムを使えないかとテストしていました。
Webブラウザーに切り替えるしかなさそうですね。

6
チョコ 2023/02/25 (土) 00:31:22 7a4e5@dab18

再送信致しました。下記の画面になりましたので念のために記載致します。

Microsoft Access 掲示板用ファイル送信

メールの送信を完了しました。
ありがとうございました。

Microsoft Access 掲示板

5

今、帰宅してメールを確認したのですが、受信できていないようです。お手数ですが、もう一度送信フォームから送信してもらえますか。

4
チョコ 2023/02/24 (金) 14:35:12 7a4e5@dab18

追加情報です。作成したナビゲーションフォームは、上側と、左側にタブを設定出来るもので、タブを数個作るとエラーが発生します。タブによってはエラーが出ない時もあるし、出るときもあります。感覚的には、タブを多く作るとでるような気がします。

3
チョコ 2023/02/24 (金) 13:33:54 7a4e5@dab18

ありがとうございます。よろしくお願いいたします。

2

今、出先ですので家に帰ったら、ファイルを確認してみます。しばらくお待ちください。

1
チョコ 2023/02/23 (木) 23:37:54 7a4e5@dab18

失礼致しまた。Microsoft Access 掲示板用ファイル送信よりACCESSファイルを送信しました。

6

条件付き書式は重い処理になるので、別案を検討してみるといいかも。

方法としては下記で紹介している方法の応用になります。下記では背景色ですが、前面色(文字色)を対象に同じ設定にします。

カレント行の背景色の変更 その3 - hatena chips

文字色を変更したいテキストボックスの前面にぴったり重なるようにテキストボックスを配置して下記のように設定します。

 =IIf(条件式,[フィールド名],"")

プロパティ設定値
コントロールソース=IIf(条件式,[フィールド名],"")
背景スタイル透明
タブストップいいえ
前景色ご希望の色
名前txtフィールド名

上記のテキストボックスのフォーカス取得時のイベントプロシージャ

Private Sub txtフィールド名_Enter()
    Me.元のテキストボックス名.SetFocus
End Sub

元のテキストボックスの更新後処理

Private Sub txtF2_AfterUpdate()
    Me.txtフィールド名.Requery
End Sub
5
たく 2023/02/18 (土) 14:14:52 5acda@0a7dd

Me.Recalc で少しはやくなりました!

5
ちばまもる 2023/02/17 (金) 23:33:20 1f7de@6f372

返事が遅れて申し訳ありません。今度こそと思ってフォームを作り直したり、テーブルを作り直したりしていました が できませんでした。あらためて質問しようとしたところ、hatenaさんの返信があるのをみて、その通りやってみたら できました! ありがとうございました! 12年前に引き続き救っていただきました。このフォーラムが継続していてほんとにありがたいです。今後ともよろしくお願いします!

4

Me.Refresh
あるいは
Me.Recalc
でどうでしょう

4

strWhere3 = "jo_shiba_dirt =" & "'" & Me!jo_shiba_dirt & " '"

上記の最後の引用符の前の半角スペースを削除したらどうなりますか?

3
りんご 2023/02/17 (金) 19:17:35 07313@0e907 >> 2

DoCmd.Requery "" を行って更新している状況です

 もし、それを外して改善するならば、まずは外し、色の変更は別の質問で誰かに教えて貰うとか。

2
たく 2023/02/17 (金) 18:57:27 5acda@0a7dd

色の変更は条件付き書式で変更しています。
データを入力しても 条件付き書式が動作してくれないので
DoCmd.Requery "" を行って更新している状況です

3
りんご 2023/02/17 (金) 18:39:02 935bc@0e907

確認した結果はさておき、サクッと作り直すのもいいですね。

2
ちばまもる 2023/02/17 (金) 18:16:34 1f7de@6f372

ありがとうございます。やはり目につくような問題ないですよね。とりあえずフォームを作り直してみようと思います。

1
りんご 2023/02/17 (金) 16:01:51 935bc@0e907

最初のサブフォームにテキストボックスの名前を変えてみたり、ヘッダーのところに別の名前で置いてみたりしてもできません。

取り敢えず、strWhere3句を外してやってみたり、手動でF_T0指数表示用を開いてみたり、確認するといいのかもしれません。

1
りんご 2023/02/17 (金) 14:12:16 935bc@0e907

>更新されるときに全レコード更新されるので、再表示までに毎入力、時間がかかってしまいます、

1つのレコード更新時に、全てのレコードをもう一度更新するようなコードを書いていませんか?取り敢えず、テキストの色を変更するコードをOFFにして確認してみるといいかも。

4
hiroton 2023/02/13 (月) 10:56:40 0ee14@f966d

実体として

フォーム内非連結テキストボックスの値は、そのフォームを開くための別フォームにあるボタンを押したときのプロシージャで文字列が変わる

ならば、そのプロシージャでやればいいです

「別のフォーム」がいつ開かれるのかわからないのであれば、上記プロシージャの他、そのフォームの読み込み時イベントでも制御する必要があるかもしれません

5

ただ、別の担当者がNz関数をVBAで改良しているみたいで、 使用できない状況です

どのような状況なのかよく分かりませんが、そのような状況自体がNGなものなので、担当者さんに改善を要求するのが筋だと思います。

IIfを使うなら、下記でいいはすです。

総作業時間: IIF(IsNull([時間の合計]), 0, [時間の合計])

または、

総作業時間: IIF([時間の合計] Is Null, 0, [時間の合計])
6
hiroton 2023/02/10 (金) 08:10:04 5fa0c@f966d >> 4

実体としてはその上の例と同じですよ

クライアント側にショートカットを置く代わりに、ショートカットを実行する(フロントエンドデータベース(ACCESSファイル)を起動する)ACCESSファイルを作成して配布していた(ショートカットの先はサーバー内のフロントエンドデータベース)

です

フロントエンドデータベースは全てクライアントPC側に置かなければなりません

4
かめ 2023/02/10 (金) 05:22:49 5acda@0a7dd

できました!!
ありがとうございます。
ただ、別の担当者がNz関数をVBAで改良しているみたいで、 使用できない状況です

質問内容と同様に
総作業時間: Nz([時間の合計], 0) を IIf(IsNull・・・  にして使おうとしましたが、うまく記述できませんでした。。

おしえていただきたいです、、、、 

5
りんご 2023/02/09 (木) 23:15:01 935bc@0e907

 accessファイルを新規作成、単純なテーブルとフォームを設定。フロントエンドaccessファイルとバックエンドaccessファイルに分割。その後、同じ症状が再現されるか確認してみるのはいかがですか?

4
かめ 2023/02/09 (木) 20:44:02 5acda@0a7dd

複数のデータベースがあり、それぞれにアクセスするためのメニューファイルがさらに個別に作られていて、そのメニューファイルだけが各個人のPCにコピーされていた(結局サーバー上のフロントエンド データベースをその作業をする複数人で共有していた)

少し詳しく聞きたいです

3
hiroton 2023/02/09 (木) 08:33:59 fc9d2@f966d

クライアントファイルは各個人のPCに保存されていますか?

これがうまくできてないのでは?

・同じACCESSファイル(データベース)を開いている。ただし、データは読み込んでいない(フォームを開いていたりはしない)
になります、、、

これだけならば、この状態はサーバーにアクセスする必要がありません
クライアントファイル(フロントエンド データベース)が正しく作られているか?
そのファイルが各個人のPCに保存され、各PC上で実行されているか?
を確認してみてください


hirotonの経験だと

クライアントファイルはサーバーに入れっぱなしで各個人のPCにはそのショートカットが置かれていた(結局サーバー上のフロントエンド データベースを全員で共有していた)
とか

複数のデータベースがあり、それぞれにアクセスするためのメニューファイルがさらに個別に作られていて、そのメニューファイルだけが各個人のPCにコピーされていた(結局サーバー上のフロントエンド データベースをその作業をする複数人で共有していた)

などの間違った運用に出くわしたことがあります

2
かめ 2023/02/09 (木) 07:04:26 5acda@0a7dd

分割はしています
上記の3項目でいうのであれば
・同じACCESSファイル(データベース)を開いている。ただし、データは読み込んでいない(フォームを開いていたりはしない)
になります、、、

改善策あるでしょうか?