Access VBA質問箱 IV

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

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


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

【3591】Re:連結フォームでの追加レコード
回答  クロ  - 04/9/28(火) 8:17 -

引用なし
パスワード
   ひょっとしたらフォームプロパティの「並べ替え」をキーコードに固定して
フォームの挿入後処理辺りで

Private Sub Form_AfterInsert()
Dim str As Long
 '現在入力したキーコードを変数格納
 str = Me.キーコード
 'フォーム自身をリクエリ
 Me.Requery
 '格納したキーコードでレコード移動
 DoCmd.FindRecord str
 'リストボックスのリクエリ
 Me.リストボックス名.Requery
End Sub

ではどうですか?
・ツリー全体表示

【3590】Re:MSFlexGridについて
回答  Chou  - 04/9/27(月) 23:24 -

引用なし
パスワード
   ▼ガッツ さん:
>やはりこの質問は、レスが付きにくいですね;;
>というか、自分の質問がそっけなさすぎたのですかね?スミマセン。
>
>それで、自分で少し調べた結果を書きますと、
>
>Form_Loadの所に以下の様に書きました。
>
>
>Dim lngCountI As Long      'ループ用カウンタ
>
>  'MSFlexGrid の初期設定
>  With flxGrid
>    .Rows = 10         '行の総数(固定行含む)
>    .Cols = 8          '列の総数(固定列含む)
>    .FixedRows = 1       '固定行の数 Rowsより1以上少ない事
>    .FixedCols = 1       '固定列の数 Colsより1以上少ない事
>    .Row = 0
>    .ColWidth(0) = 500     '列幅
>    .ColWidth(1) = 550
>    .ColWidth(2) = 1800
>    For lngCountI = 3 To 7
>      .ColWidth(lngCountI) = 1000
>    Next lngCountI
>    .RowHeight(0) = 350     '行の高さ
>    .CellAlignment = flexAlignCenterCenter
>    .Col = 1: .Text = "列名0"
>    '該当セルを 中寄/中寄 表示
>    .CellAlignment = flexAlignCenterCenter
>    .Col = 2: .Text = "列名1"
>    .CellAlignment = flexAlignCenterCenter
>    .Col = 3: .Text = "列名2"
>    .CellAlignment = flexAlignCenterCenter
>    .Col = 4: .Text = "列名3"
>    .CellAlignment = flexAlignCenterCenter
>    .Col = 5: .Text = "列名4"
>    .CellAlignment = flexAlignCenterCenter
>    .Col = 6: .Text = "列名5"
>    .CellAlignment = flexAlignCenterCenter
>    .Col = 7: .Text = "列名6"
>    .CellAlignment = flexAlignCenterCenter
>    .Col = 0
>    For lngCountI = 1 To .Rows - 1
>      .RowHeight(lngCountI) = 350   '行の高さ
>      .Row = lngCountI
>      .Text = lngCountI        '行番号を表示
>    Next lngCountI
>    .Col = 1: .Row = 1
>    'カレントセルを反転表示(強調表示すればカレントセルが解りやすい)
>    .FocusRect = flexFocusNone
>    .HighLight = flexHighlightAlways
>  End With
>
>
>こういう風に、全て直打ちでMSFlexGridに書いているのですが、
>テーブルの内容や、クエリの内容を表示させる事を知っている方
>もしくは、できないんじゃないなど、知っている方
>よろしければ、お願いします。

間違ってたらゴメンナサイ。
FixedRows, FixedColsにTextを表示させている様に
(例えば列名1〜6)、Table又はQueryを基に
Recordsetを開いてRecordsetのFieldを使えば
内容は表示されるはずです。
例えば:
MSFlexGrid1.Row = 1
MSFlexGrid1.Col = 1
MsFlexGrid1.Text = RecordsetName!Field

Loop等が使えます。
・ツリー全体表示

【3589】Re:MSFlexGridについて
回答  hatena  - 04/9/27(月) 18:04 -

引用なし
パスワード
   >こういう風に、全て直打ちでMSFlexGridに書いているのですが、
>テーブルの内容や、クエリの内容を表示させる事を知っている方
>もしくは、できないんじゃないなど、知っている方
>よろしければ、お願いします。

MSFlexGrid を使ったことはないので、想像ですが、
テーブルやクエリは、Access(or データベース)独特のものですので、
Access付属のコントロールのように簡単には連結できないと思います。

DAO か、ADO でレコードセットを開き、順番にテーブル内容を読み込んで
MSFlexGrid に直書きするしかないと思います。
もちろんMSFlexGridで編集した内容をテーブルに戻すのも自前で
コーディングする必要があると思います。

あくまで推測ですので間違っていたらごめんなさい。
・ツリー全体表示

【3588】Re:連結フォームでの追加レコード
発言  ぷー  - 04/9/27(月) 16:53 -

引用なし
パスワード
   >フォームの構成が今一分からないのですが、追加分のレコードとはどういうことで
>しょうか?そのフォームそのもので入力するのでなく別のフォームからそのフォーム
>のレコードソースとなるテーブルにレコードを転送しているとか?
>メイン/サブフォームを使っているとか?

説明が不足ですみません。フォームは単表形式のオートファーマットで作製したフォームと考えてください。そして、そのフォームの中に、メインフォームと同一テーブール内容のリストボックス(非連結)があります。
そこでレコードの追加・更新・削除をし、カレントレコードとリストボックスの値の同期を取っています。
追加処理以外の同期は成功したのですが、追加処理後はRecordcountでコントロールしているために、同期が取れなくなってしまいます。
説明が上手に出来ませんが、よろしくお願いいたします。
・ツリー全体表示

【3587】Re:連結フォームでの追加レコード
回答  クロ  - 04/9/27(月) 16:22 -

引用なし
パスワード
   > 試してみましたら、既存レコードの並べ替えはうまくいきますが、
> 追加分のレコードはやはり一番最後にきてしまします。

フォームの構成が今一分からないのですが、追加分のレコードとはどういうことで
しょうか?そのフォームそのもので入力するのでなく別のフォームからそのフォーム
のレコードソースとなるテーブルにレコードを転送しているとか?
メイン/サブフォームを使っているとか?
そのフォームのプロパティ並び替えに直接並び替えるフィールドを記入して、リクエリ
とかで済みませんか?

RecordCountはキー項目が「並び替え」されなくともカウントできませんか?
もしくはDcountではマズイのでしょうか?
・ツリー全体表示

【3586】Re:連結フォームでの追加レコード
質問  ぷー  - 04/9/27(月) 16:07 -

引用なし
パスワード
   何度もありがとうございます。質問の仕方が中途半端でした。ごめんなさい。
並べ替えをしたい目的のひとつは、キー項目で並び替わった時の(追加処理後にテーブルを開いた時の並びと同じ)RecordCount が知りたいのです。
又、NEXTボタン等でレコードを移動していった時に、追加分もキー順に並べてほしいのです。(今は追加分が最後です)
よろしくお願いいたします。
・ツリー全体表示

【3585】Re:連結フォームでの追加レコード
回答  クロ  - 04/9/27(月) 15:23 -

引用なし
パスワード
   入力している時は最後で仕方ないとして...
フォームの挿入後処理とかどうですか?

※この場合ソート後のレコードにフォーカスが行きます。
 Me.フィールド名.SetFocus
 DoCmd.GoToRecord , , acNewRec
 を追加すれば再び最後の入力レコードに移ります。
・ツリー全体表示

【3584】Re:印刷の不具合??
お礼  MAD BAZ  - 04/9/27(月) 15:09 -

引用なし
パスワード
   こもれびさん。
お答えありがとうございます。
これも相談時にもれていた事ですが、プリンター再インストールは行っています。
お話頂いた、切り分け試験としての、再度MDBのコピーインストールは、かなり効果的だと思います。
レポート類が多く、ページの再設定が手動で必要なのですが、早速やってみて、様子を見てみたいと思います。又ご報告します。ありがとうございました。
・ツリー全体表示

【3583】Re:連結フォームでの追加レコード
質問  ぷー  - 04/9/27(月) 15:05 -

引用なし
パスワード
   クロさんありがとうございます。

試してみましたら、既存レコードの並べ替えはうまくいきますが、追加分のレコードはやはり一番最後にきてしまします。
(1度フォームを閉じて、また開けばOKですが・・・)
フォームをOpen中の連結テーブルの並べ替えは無理なのでしょうか?
何か良い方法がありましたら教えてください。
・ツリー全体表示

【3582】Re:連結フォームでの追加レコード
回答  クロ  - 04/9/27(月) 13:33 -

引用なし
パスワード
   フォームプロパティの「並べ替え」にキーとなるフィールド書き込めば
よろしいので?

タイミングはフォームを開く時とかイベント辺りで
Me.OrderBy = "フィールド名"
Me.OrderByOn = True
・ツリー全体表示

【3581】連結フォームでの追加レコード
質問  ぷー  - 04/9/27(月) 13:22 -

引用なし
パスワード
   お世話になります。どなたか教えてください。

連結フォームでレコードを追加すると、そのレコードはフォーム上一番最後のレコードとなるようですが、連結しているテーブルのキー順に並べ替えたいのですが可能でしょうか。
可能であれば方法を教えてください。
よろしくお願いいたします。
・ツリー全体表示

【3580】Re:MSFlexGridについて
質問  ガッツ  - 04/9/27(月) 10:54 -

引用なし
パスワード
   やはりこの質問は、レスが付きにくいですね;;
というか、自分の質問がそっけなさすぎたのですかね?スミマセン。

それで、自分で少し調べた結果を書きますと、

Form_Loadの所に以下の様に書きました。


Dim lngCountI As Long      'ループ用カウンタ

  'MSFlexGrid の初期設定
  With flxGrid
    .Rows = 10         '行の総数(固定行含む)
    .Cols = 8          '列の総数(固定列含む)
    .FixedRows = 1       '固定行の数 Rowsより1以上少ない事
    .FixedCols = 1       '固定列の数 Colsより1以上少ない事
    .Row = 0
    .ColWidth(0) = 500     '列幅
    .ColWidth(1) = 550
    .ColWidth(2) = 1800
    For lngCountI = 3 To 7
      .ColWidth(lngCountI) = 1000
    Next lngCountI
    .RowHeight(0) = 350     '行の高さ
    .CellAlignment = flexAlignCenterCenter
    .Col = 1: .Text = "列名0"
    '該当セルを 中寄/中寄 表示
    .CellAlignment = flexAlignCenterCenter
    .Col = 2: .Text = "列名1"
    .CellAlignment = flexAlignCenterCenter
    .Col = 3: .Text = "列名2"
    .CellAlignment = flexAlignCenterCenter
    .Col = 4: .Text = "列名3"
    .CellAlignment = flexAlignCenterCenter
    .Col = 5: .Text = "列名4"
    .CellAlignment = flexAlignCenterCenter
    .Col = 6: .Text = "列名5"
    .CellAlignment = flexAlignCenterCenter
    .Col = 7: .Text = "列名6"
    .CellAlignment = flexAlignCenterCenter
    .Col = 0
    For lngCountI = 1 To .Rows - 1
      .RowHeight(lngCountI) = 350   '行の高さ
      .Row = lngCountI
      .Text = lngCountI        '行番号を表示
    Next lngCountI
    .Col = 1: .Row = 1
    'カレントセルを反転表示(強調表示すればカレントセルが解りやすい)
    .FocusRect = flexFocusNone
    .HighLight = flexHighlightAlways
  End With


こういう風に、全て直打ちでMSFlexGridに書いているのですが、
テーブルの内容や、クエリの内容を表示させる事を知っている方
もしくは、できないんじゃないなど、知っている方
よろしければ、お願いします。
・ツリー全体表示

【3579】Re:印刷の不具合??
回答  こもれび  - 04/9/25(土) 8:51 -

引用なし
パスワード
   こもれびです

ちょっと判らないことがありますので教えてください。

印刷しているものはレポートではなくフォームなのでしょうか?

印刷の不具合が発生するアプリケーションはAccessのみなのでしょうか?
また、Accessとは離れてしまうのですが、ハードウエアがからみますと、
私の場合プリンタドライバをも疑います。
WindowsMeのパソコンにインストールされているプリンタドライバの
再インストールなどは試されましたでしょうか。

1ヶ月に2度程度ということなのですが、不具合が発生する時はAccessの
前に決まって何らかのアプリケーションを動かしているということは
ないでしょうか?

切り分け試験として、WindowsMeにコピーインストールしてあるmdbを
削除し再度mdbをコピーインストールすることは可能でしょうか?
ローカルのテーブルがあってデータが入っている場合は、mdbの削除
はできないのでオブジェクトのみ削除し、別のパソコンにいれてある
mdbのオブジェクトをインポートし、様子をみてみるということは
いかがでしょうか。


▼MAD BAZ さん:
>▼こもれび さん:
>>レポートはフロントエンドにあるのですか?
>こもれび さん遅くなって申し訳ありません。
>説明足りませんでした。表示は、フォームでフォームビューで表示しています。
>フロントエンドに有ります。
>ページ設定、余白の問題ではないと思います。
>よろしくお願いいたします。
・ツリー全体表示

【3578】MSFlexGridについて
質問  ガッツ  - 04/9/24(金) 19:36 -

引用なし
パスワード
   質問させていただきます。

MSFlexGridについてなのですが、
クエリで作ったデータをMSFlexGridに
表示させようと思うのですが、やり方がいかんせんわかりませんでした。

lstボックスと違いRowSourceなどがない為どのようにしていいか
わかりません。知っている方いましたらよろしくお願いします。
・ツリー全体表示

【3577】Re:レポートの改ページを制御したい
お礼  eimy  - 04/9/24(金) 16:56 -

引用なし
パスワード
   ご回答いただいた設定で試してみたところ、
うまく改ページが出来ました。
ありがとうございました。
・ツリー全体表示

【3576】Re:レポートの改ページを制御したい
回答  Gin_II  - 04/9/24(金) 13:24 -

引用なし
パスワード
   >・社員番号ごとに改ページ
> ⇒改ページするごとにヘッダーとフッターを印刷

並べ替え/グループ化の設定 で、社員番号フィールドでグループ化させて、
グループヘッダー・グループフッターを使えばいいと思います。

改ページは、グループフッターのプロパティで、カレントセクションの後に
設定すればいいかと。
・ツリー全体表示

【3575】Re:印刷の不具合??
回答  MAD BAZ  - 04/9/24(金) 10:25 -

引用なし
パスワード
   ▼こもれび さん:
>レポートはフロントエンドにあるのですか?
こもれび さん遅くなって申し訳ありません。
説明足りませんでした。表示は、フォームでフォームビューで表示しています。
フロントエンドに有ります。
ページ設定、余白の問題ではないと思います。
よろしくお願いいたします。
・ツリー全体表示

【3574】レポートの改ページを制御したい
質問  eimy  - 04/9/24(金) 10:08 -

引用なし
パスワード
   どうにもこうにも行き詰ってしまったので、どなたかご存知の方が
いらっしゃいましたらお助けください。。。

1社員番号につき複数行のデータを持っているテーブルの内容を、
以下の条件でレポートにプレビューで表示させたいです。

・社員番号ごとに改ページ
 ⇒改ページするごとにヘッダーとフッターを印刷
・同一社員番号で1ページに入りきらなかったとき改ページ
 ⇒全ページにヘッダーを印刷、フッターは最後のページにだけ印刷

並べ替え/グループ化の設定で色々と試みてみましたが、
改ページがうまくいきません。
社員番号ごとに改ページさせることは出来ますでしょうか?
また、その方法をご存知でしたら、教えてください。

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

【3573】Re:非連結のテキストボックスにテーブルか...
お礼  キャッピー  - 04/9/24(金) 9:09 -

引用なし
パスワード
   ▼クロ さん:
>非連結フォームに複数のレコードを持ってくるのは不可能かと思います。
>ワークテーブル(仮テーブル)を作成し、そちらに必要なレコードをセットして
>現在の非連結フォームのレコードソースにワークテーブルを指定しては如何ですか?

やはりそうですか。
そうですね、仮テーブルを作る方向で考えていきたいとおもいます。
こもれびさん、クロさん、ありがとうございました。
今後もどうぞよろしくお願いします。
・ツリー全体表示

【3572】Re:非連結のテキストボックスにテーブルか...
回答  クロ  - 04/9/24(金) 8:25 -

引用なし
パスワード
   非連結フォームに複数のレコードを持ってくるのは不可能かと思います。
ワークテーブル(仮テーブル)を作成し、そちらに必要なレコードをセットして
現在の非連結フォームのレコードソースにワークテーブルを指定しては如何ですか?
・ツリー全体表示

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