実行時エラー ‘3265’ オブジェクトがコレクションで見つかりませんでした。

レコードセットの値を取得するときに出たエラー。
フィールド名は絶対に間違っていないのになぜ?と思っても
実際にレコードセットのフィールド名を取得してみるのが、賢明。

----------------------------
    Dim i As Long

    For i = 0 To rs.Fields.Count - 1
        debug.print rs.Fields(i).Name
    Next
----------------------------

Next

複数の値をフォームからレポートに渡す

●複数の値をフォームからレポートに渡す

https://blog.goo.ne.jp/shusei0815/e/3b120f0ca7226e011b9fec4003016b74
https://tsware.jp/tips/tips_648.htm

【フォーム側】

Dim strOpenArgs As String

‘別フォームに渡す引数を組み立てる(選択項目、タイトル、日付を渡す)
strOpenArgs = Nz(Me.cmb選択.Value, 0) & “,” & Nz(Me.txtタイトル.Value, 0) & “,” & Nz(Me.txt日付.Value, 0)

DoCmd.OpenReport “R_レポート1”, acViewPreview, , , , strOpenArgs)

【レポート側】
イベント・・・フォーマット (今回は、ページヘッダーセクションのフォーマットイベントです)
Private Sub ページヘッダーセクション_Format(Cancel As Integer, FormatCount As Integer)
Dim v As Variant

‘OpenArgsをカンマごとに分解して配列に格納する
v = Split(Nz(Me.OpenArgs), “,”)

Me.txt帳票タイプ = v(0) ‘タイトル(全体数/正袋数/端数)
Me.txtタイトル = v(1) ‘タイトル(製造計画/完成)
Me.txt製造日 = v(2) ‘製造日

End Sub

目障りな一瞬の画面ちらつきを防止(Application.ScreenUpdatingで更新停止)

VBAの画面のちらつきがたった1行で解決して処理も高速化

VBAコード処理の前に
Application.ScreenUpdating = False
と書いて、画面更新処理を停止します。

最後に(End Sub)の前に
Application.ScreenUpdating = True
と書いて、画面更新処理を再開(元に戻す)します。

———————–
Sub 画面更新停止()
Application.ScreenUpdating = False
******
Application.ScreenUpdating = True
End Sub
———————–

サブフォームのリクエリで、使えないときは

———————–

‘フォームの描画をOFF
Me.Painting = False

Me.明細フォーム.Requery

‘フォームの再描画をON
Me.Painting = True

———————–

フォームのデータシート表示で列幅を調整する

単にデータシートビューで、枠を引っ張ればいい(涙)

そんな単純なことかい。。。

Forms![Customers].RowHeight = 450

Forms![Customers]![Address].ColumnWidth = -2

なんて、要らない。

VBAでセットしたいなら、列の幅をtwip単位で表す整数型 (Integer ) の値で入れる

ちなみに論理的な 1 センチメートルは 567 twipなので、

2cmにしたければ、ColumnWidth = 2*567 とする。

フォームのデータシートビューの列順を変えられない問題

フォームのデータシートビューの列順を変えられない問題
⇒解決

プロパティシートの中の「レイアウトビューの許可:はい」にする。
「レイアウトビューの許可:いいえ」の状態で列順を変えようとしても変えられない。

——————-
上記の方法でもうまくいかない時やってみること。

① データシートビューの状態で列順や列幅を変える

② 左隅をクリックして全体を選択する

③ 何か変更する(例えば、フォントサイズなど)

④ 上書き保存する

⑤ フォームを閉じる

それで再度表示すると①の変更が効いている
——————-

https://e-soho.site/78.html

 IF分省略:resultA = ( a = 10 )

IF分は、TrueかFalseかの判定しかしない(Boolean型)ため

簡単な代入式なら、代入演算子比較演算子を用いて、

「If~Then~」の構文を使わずに条件付きの代入式を記載できる。

---------- 例 -------------

Dim a As Integer
a = 10
Dim resultA As Boolean
resultA = a = 10
'右のイコールは比較演算子、左のイコールは代入演算子であることに注意
'aは10なので、resultAにはTrueが入る。

Dim b As Integer
b = 10
Dim resultB As Boolean
resultB = b > 9
'bは9より大きいので、resultBにもTrueが入る。

Dim result As Boolean
result = resultA And resultB
'resultAとresultBはどちらもTrueなので、resultにはTrueが入る。

↓↓↓ 上記コードに問題はないが、見た目が気持ち悪いので以下の表現を推奨  ↓↓↓

resultA = ( a = 10 )
resultB = ( b > 9 )
result = ( resultA And resultB )