Access VBA質問箱 IV

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

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


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

【12946】ユニオンクエリの昇順並べ替えについて
質問  まるこ  - 16/2/18(木) 17:01 -

引用なし
パスワード
   こんにちは
何度も何度もすみません
また基本的な事で詰まってしまいました

よろしくお願いします

下記のようなユニオンクエリがあります

SELECT クエリA.CD, クエリA.取引先名, クエリA.支払予定日, クエリA.明細, クエリA.サブID
FROM クエリA
GROUP BY クエリA.CD, クエリA.取引先名, クエリA.支払予定日, クエリA.明細, クエリA.サブID, クエリA.抽出日付, クエリA.式1
HAVING (((クエリA.抽出日付)=[Forms]![フォームA]![コントロールA]))
ORDER BY クエリA.式1                          ・・・・・・※

Union all SELECT クエリB.CD, クエリB.取引先名, クエリB.支払予定日, クエリB.明細, クエリB.サブID
FROM クエリB
GROUP BY クエリB.CD, クエリB.取引先名, クエリB.支払予定日, クエリB.明細, クエリB.サブID, クエリB.抽出日付
HAVING (((クエリB.抽出日付)=[Forms]![フォームA]![コントロールA]))

UNION ALL SELECT クエリC.CD, クエリC.取引先名, クエリC.支払予定日, クエリC.明細, クエリC.サブID
FROM クエリC
GROUP BY クエリC.CD, クエリC.取引先名, クエリC.支払予定日, クエリC.明細, クエリC.サブID, クエリC.抽出日付
HAVING (((クエリC.抽出日付)=[Forms]![フォームA]![コントロールA]));

※の ORDER BY が全く機能せず、順番がぐちゃぐちゃになります

ちなみにクエリABC単体ではちゃんと機能して昇順に並びます
またクエリA,B,Cがごちゃまぜになるっていうことはありません
クエリB,Cにも※の部分は入っていますが入れたままだとエラーが出るのでユニオンクエリを作る際に削除しました

式1の並べ替え用にのみ存在するフィールドなのでクエリABCそれぞれチェックマークは外しています
(このユニオンクエリは出力用なので出力先の書式に合わせるため)

過去ログやネットで見つかりそうなものですが、うまく見つけられませんでした
よろしくお願いします
・ツリー全体表示

【12945】Re:あるテーブルに入力された数字を他ク...
お礼  まるこ  - 16/2/18(木) 16:52 -

引用なし
パスワード
   ▼かるびの さん:
ご回答ありがとうございます
ご報告及びお礼が遅れて申し訳ありません

> クエリ1ですが、一対多のテーブルから成るクエリだと思います。
その通りです

> 次に、クエリから入力しているとのことですが、感心しません。
> データベースでは、レコードの入力はフォームで行うものです。
> テーブルやクエリを開いてそこに入力するということは、
>むしろやってはいけないことと言っても過言ではありません(テストのときだけは別)。

そうなのですか
実はこの入力フォームは
エクセル的な入力方法でお願いしたいとのリクエストから、最初はデータシート形式のフォームを使っていたのですが、その流れであれこれクエリから直接入力するほうが簡単じゃないか?って思ってしまったのです
駄目だったのですね。

> 一対多のテーブルへデータを格納する場合、
>メイン/サブの形式のフォームを使って常道です。
>
> つまり、メインフォームに、上例でいえばT請求書のレコードを表示させ、
>サブフォームに、上例におけるT請求明細のレコードを表示させます。
> この場合、サブフォームには、メインフォームに表示されたレコードと紐付けられたレコードだけを
>表示するようにするのが一般です。

> テーブル作成クエリは論外です。
> テーブルそのものの新規作成や削除を繰り返すと、ファイル破損の可能性が飛躍的に高まるため、
>この方法はほとんど禁じ手です。

テーブル作成クエリは他の事に使っています
でもあまりよくないのですね
メインフォームとサブフォームの組み合わせは最初のデータ入力フォームがそうなので、そこでサブIDを入力していくようにしようと当初考えていましたが、一つ入力しては次のページ、といった方法が面倒だという声が上がりまして。
色々考えて、入力用フォームから追加クエリを使って入力する方法を取りました
エクセルとはかけ離れていますが、アクセスは本来そうしたものだと言って納得してもらいます

どうもありがとうございました。
・ツリー全体表示

【12944】dcount関数について
質問  ささや E-MAIL  - 16/2/18(木) 13:52 -

引用なし
パスワード
   アクセス初心者です。
次の3つのテーブルから、社員が担当している継続中の案件数を計算したいのですが

社員テーブル
 社員ID、社員名
案件テーブル
 案件ID、案件名、結果(継続中、成功、失敗)
関与テーブル
 ID、社員ID、案件ID

社員テーブル、関与テーブルを一対多、関与テーブルと案件テーブルを多対一で結合しています。

ここで、社員ごとに継続中の案件数を計算するクエリをつくりたいのですが、そのクエリで社員名などを編集できやるようにしておきたく、そのためには集計クエリを使わずにdcount関数を使えばいいようなのですが、関数の引数(とくに条件の部分)をどう記述すればいいのでしょうか。

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

【12943】Re:コンボボックスの重複についてご教示...
お礼  佐藤 時範 E-MAIL  - 16/2/14(日) 19:40 -

引用なし
パスワード
   ▼佐藤 時範 さん:
>1.オプションから選択して、コンボボックスに入力すると、
>選択した言葉がオプションに反映され、オプションに同じ言葉が沢山でてきます。
>
> オプションから選択した言葉の重複を止めるのはどのようにしたらいいのでしょうか。
>
>   以上です。宜しく御教示お願いいたします。


全く勉強不足でご迷惑をおかけしました。
 
 もっと勉強してから質問するようにします。

 之からも宜しく御指導お願いします。

 以上です。
・ツリー全体表示

【12942】Re:コンボボックスの重複についてご教示...
回答  かるびの  - 16/2/14(日) 18:21 -

引用なし
パスワード
    そちらの状況が全くわかりません。

 まず、
>1.オプション
ってあるけど、これ何? オプションボタンのこと、それともオプショングループのこと?

>選択した言葉がオプションに反映される
ってどういうこと? 
フォームにはオプションボタンが何十とあり、コンボボックスで選択すると、
どれかのオプションボタンが True になるということ?

>オプションに同じ言葉が沢山でてきます。
とありますが、オプションがオプションボタンのことであるにせよ、
オプショングループのことであるにせよ、
それらは文字列を表示できないため、同じ言葉が沢山でてくるという事態は考えられません。

>オプションから選択した言葉
ってあるけど、言葉はコンボボックスで選択するんじゃないの?

 
 このように疑問点が多々あり、そちらの状況を全く想像できないので、
フォームの状況を説明してもらう必要があります。

 第1に、フォーム構成を示してください。
 フォーム構成は、
1 フォームは、単票フォームか、帳票フォームか、データシートか
2 フォームのレコードソース
3 フォームに配置されている主要なコントロール(テキストボックスやチェックボックスなど)
のそれぞれの種類、名前及びコントロールソース
を示してください。


 第2に、フォームのレコードソースは多くの場合クエリでしょうから、
そのクエリ構成を示してください。
 具体的には、当該クエリのSQLビューの内容を示してください。


 第3に、フォームのレコードソースたるクエリで使われているテーブルのテーブル構成を示してください。
 具体的には、
テーブル名、
主キーたるフィールド名及びデータ型、
主要なフィールドのフィールド名及びデータ型
を示してください。


 その上でフォームにおいて、どういう操作をしたら、どうなってほしいのか、
及び現状ではどうなってしまうのか
を提示してください。
・ツリー全体表示

【12941】コンボボックスの重複についてご教示おね...
質問  佐藤 時範 E-MAIL  - 16/2/14(日) 7:49 -

引用なし
パスワード
   1.オプションから選択して、コンボボックスに入力すると、
選択した言葉がオプションに反映され、オプションに同じ言葉が沢山でてきます。

 オプションから選択した言葉の重複を止めるのはどのようにしたらいいのでしょうか。

   以上です。宜しく御教示お願いいたします。
・ツリー全体表示

【12940】Re:ページフッターの合計
お礼  maiu  - 16/2/10(水) 11:57 -

引用なし
パスワード
   かるびの様

ご回答ありがとうございました。
おかげ様でなんとか希望する仕様に変更できました。
自分はレポート上に[=function] を配置して計算させるのが癖なのですが
その場合、連続して1ページから最終ページまで印刷する時は
思ったとおりの動きをしてくれるのですが
飛ばしてページを印刷する時は上手く動かないので今後は注意します。

ありがとうございました。
・ツリー全体表示

【12939】Re:あるテーブルに入力された数字を他ク...
回答  かるびの  - 16/2/5(金) 20:03 -

引用なし
パスワード
    クエリ1ですが、一対多のテーブルから成るクエリだと思います。
 つまり、一側テーブルは、その名前が例えばT請求書、フィールドがID、注文日、支払予定日、
多側テーブルは、その名前が例えばT請求明細、フィールドが明細ID、ID、金額、備考
となっているはずです。
 これは、好みの問題ではなく、蓄えるデータの性質上、理論に見て、
よほど特殊な事情がない限り、
こういうテーブル構成になるはずだというレベルのものです。


 次に、クエリから入力しているとのことですが、感心しません。
 データベースでは、レコードの入力はフォームで行うものです。
 テーブルやクエリを開いてそこに入力するということは、
むしろやってはいけないことと言っても過言ではありません(テストのときだけは別)。
 
 エクセルでは、データの格納も、データの計算も、データの入力・訂正も、データの表示も、
データの印刷も全てワークシートで行いますが、
アクセスの場合は、それぞれ異なったオブジェクトで行います。
 データの格納はテーブル、データの計算はクエリ、データの入力・訂正・表示はフォーム、
データの印刷はレポートで行います。

 確かに、テーブルやクエリでレコードの入力をすることもできますが、
元々が入力のためのオブジェクトではないので、人間にとって使いやすい入力の仕方は望めません。


 一対多のテーブルへデータを格納する場合、
メイン/サブの形式のフォームを使って常道です。

 つまり、メインフォームに、上例でいえばT請求書のレコードを表示させ、
サブフォームに、上例におけるT請求明細のレコードを表示させます。
 この場合、サブフォームには、メインフォームに表示されたレコードと紐付けられたレコードだけを
表示するようにするのが一般です。


 どうしても、
>ID|注文日  |支払予定日 |請求書番号|金額|備考
>1|2016/1/4 |2016/2/29 |AZP00001 |4800|あああああ         
>2|2016/1/15 |2016/3/31 |AZP00002 |2900|えええ
>3|2016/2/1 |2016/3/31 |AZP00003 |4260|かかかか 
という形で入力したいというならば、ワークテーブルを使います。

 ワークテーブルというのは、一時的にデータを保管するためのテーブルのことです。
 通常、フォームを開くときに、
1 ワークテーブルの初期化としてワークテーブルの全レコードを削除し、
2 追加クエリによりテーブルからワークテーブルにレコードを読み込み、
3 ワークテーブルをレコードソースとするフォーム上でレコードを入力・訂正し、
4 フォームを閉じるときに、元のテーブルにワークテーブルからレコードを戻します。
 戻し方にはいろいろありますが、最も単純なのは、
ワークテーブルに読み込んだレコードを元テーブルから全て削除し、
ワークテーブルから元テーブルに、ワークテーブルの全レコードを追加するという手法です。

 ワークテーブルは、比較的よく使われる手法ですが、
レコードの削除と追加を繰り返すため、ファイル破損の可能性が少し高まるとも言われており、
他の方法(メイン/サブのフォームなど)が使えるなら、避けたいところです。


 テーブル作成クエリは論外です。
 テーブルそのものの新規作成や削除を繰り返すと、ファイル破損の可能性が飛躍的に高まるため、
この方法はほとんど禁じ手です。
・ツリー全体表示

【12938】Re:あるテーブルに入力された数字を他ク...
発言  まるこ  - 16/2/5(金) 17:56 -

引用なし
パスワード
   >※請求書番号ごとに集計されています

請求書番号ではなくIDの間違えでした すみません
・ツリー全体表示

【12937】あるテーブルに入力された数字を他クエリ...
質問  まるこ  - 16/2/5(金) 14:11 -

引用なし
パスワード
   こんにちは
よろしくお願いします

下記のような入力用クエリがあります

クエリ1
ID|注文日  |支払予定日 |請求書番号|金額|備考
1|2016/1/4 |2016/2/29 |AZP00001 |3500|あああああ      
1|2016/1/4 |2016/2/29 |AZP00001 |100 |いいい          
1|2016/1/4 |2016/2/29 |AZP00001 |1200|うううう         
2|2016/1/15 |2016/3/31  |AZP00002 |1400|えええ         
2|2016/1/15 |2016/3/31  |AZP00002 |1500|おおおおお         
3|2016/2/1 |2016/3/31 |AZP00003 |1200|かかかか         
3|2016/2/1 |2016/3/31 |AZP00003 |1000|きききき         
3|2016/2/1 |2016/3/31 |AZP00003 |200 |くくくく         
3|2016/2/1 |2016/3/31 |AZP00003 |1780|けけけ         
3|2016/2/1 |2016/3/31 |AZP00003 |80 |こここ

何を入力するかというと
支払予定日(期ずれになる場合があるので手入力します)
請求書番号(購入先の請求書が来て初めてわかります)

これを、下記のように変えてほしいとの要望がありました

クエリ2
ID|注文日  |支払予定日 |請求書番号|金額|備考
1|2016/1/4 |2016/2/29 |AZP00001 |4800|あああああ          
2|2016/1/15 |2016/3/31  |AZP00002 |2900|えええ              
3|2016/2/1 |2016/3/31 |AZP00003 |4260|かかかか         
※請求書番号ごとに集計されています

こうすると請求書ごとに入力は一列で済むし合計金額=請求書の金額なのでわかりやすいとのことです
確かにそうなのですが、集計クエリに直接書き込むことはできません

なのでクエリ2をテーブル作成クエリでテーブルにして書き込む、までは思いついたのですが
それ以降がわかりません
クエリ2から作成されたテーブルのデータが、クエリ1にも同時に入力されるようにしたいのです
つまり、IDが1のレコードにはすべて1の支払予定日と請求書番号が
IDが2の場合は2の、と言った具合です
色々考えたのですが方法がわからなくて書き込ませて頂きました
よろしくお願いします
・ツリー全体表示

【12936】Re:カレントレコードのサブIDが前のレコ...
お礼  まるこ  - 16/2/5(金) 13:57 -

引用なし
パスワード
   大変遅くなって申し訳ありません
めちゃめちゃ苦労しましたが何とかできました
ありがとうございました。
また、質問させていただきたいことができましたので、
何度もすみませんが、別スレッドを立てさせていただきます
よろしくお願いします
・ツリー全体表示

【12935】funcKEISANを実験してみた
発言  かるびの  - 16/2/5(金) 1:47 -

引用なし
パスワード
    次のコードを、サンプルを作って試してみました。

>Dim SIRE As Long,ZEI As Long,GOKEI As Long
>Function funcKEISAN()
>  SIRE = SIRE + Me.SIRE
>  ZEI = ZEI + Me.ZEI
>  GOKEI = GOKEI + Me.GOKEI
>End Function
>
>Private Sub ページフッターセクション
>  Me.仕入計 = SIRE
>  Me.税計 = ZEI
>  Me.合計計 = GOKEI
>End Sub

 その結果、
>10ページ目だけを印刷した場合に10ページの部分のみの数値が計算されてしまいます。
という事態には至らず、ページフッタの合計を表示するテキストボックスには、
1ページ目のレコードの合計額と10ページ目の合計額の併せた数値が表示されました。


 maiu さんにおける設定とは異なっているはずですので、
当方のサンプルの概要を記載しておきます。
 なお、オブジェクトの命名方法に統一性がなく、いつもならそんな命名方法はしませんが、
サンプルなので、その点は御容赦。


テーブル構成
 テーブル名 T仕入れ
 フィールド
  ID オートナンバー 主キー
  取引先 テキスト型
  仕入額 長整数型


レポート
 レポート名 R仕入れ_関数実験
 レコードソース T仕入れ
 配置したコントロール
  txtID    (詳細セクションに配置。コントロールソースは「ID」フィールド)
  txt取引先  (詳細セクションに配置。コントロールソースは「取引先」フィールド)
  txt仕入額  (詳細セクションに配置。コントロールソースは「仕入額」フィールド)
  txt関数   (詳細セクションに配置。コントロールソースは「=funcKEISAN()」)
  txtPageSum (ページフッタに配置。非連結コントロール。仕入額のそのページまでの合計を表示)          


標準モジュール
Dim lngSiire AS Long    ’パブリック変数

Function funcKEISAN() AS Long
  lngSiire = lngSiire + Reports!R仕入れ_関数実験!txt仕入額

  Debug.Print "ID:" & Reports!R仕入れ_関数実験!txtID.Value

  funcKEISAN = 9
End Function

Sub SrPageFooterSection()
  Reports!R仕入れ_クエリ実験!txtPageSum.Value = lngSiire
End Sub

        
「R仕入れ_関数実験」のモジュール 
Private Sub ページフッターセクション_Print(Cancel As Integer, PrintCount As Integer)
  Call SrPageFooterSection
  
  Debug.Print "PageFooterSection_Printイベント,Page=" & Me.Page
End Sub
 
 
 なお、上記における「Debug.Print」のコードですが、
「funcKEISAN」プロシージャや「ページフッターセクション_Print」プロシージャの
挙動を確認するためのコードです。
 当該ページまでの仕入額の合計表示には全く関係のないコードです。


 以上の構成の下で、
まず、R仕入れ_関数実験を開きます。レポートは全4ページからなっています。
 次に、アクセスのメニューの印刷コマンドを選択し、3ページ目だけを印刷します。

 すると、3ページ目のtxtPageSumには、
1ページ目のレコードの仕入額の合計と3ページ目の仕入額の合計を併せた額が表示されました。


 冒頭のコードについては、私の前レスでは、
> というのは、ページフッタが印刷される時点において、
>変数SIRE等の値が、当該ページにおける最終レコードまでの仕入額等の合計額となっている
>保証がないからです。
> なので、これらのプロシージャを使って、仕入額等の合計を出すのは不安です。
と書きましたが、
実験の結果、冒頭のコードでも、実用的にはいけそうだなと思いました。

 しかし、これは経験則に過ぎず、理論的なバックボーンを持ちません。
 つまり、txt関数のコントロールソースに設定した「=funcKEISAN()」が
どのタイミングで実行されるのか、必ずしもはっきりしません。
 そのため、不安払拭には至りません。
・ツリー全体表示

【12934】Re:ページフッターの合計
回答  かるびの  - 16/2/5(金) 0:29 -

引用なし
パスワード
    レポートは苦手なので、以下のレスは外している可能性があります。


>Dim SIRE As Long,ZEI As Long,GOKEI As Long
>Function funcKEISAN()
>  SIRE = SIRE + Me.SIRE
>  ZEI = ZEI + Me.ZEI
>  GOKEI = GOKEI + Me.GOKEI
>End Function
>
>Private Sub ページフッターセクション
>  Me.仕入計 = SIRE
>  Me.税計 = ZEI
>  Me.合計計 = GOKEI
>End Sub
 このコードですが、かなりリスクのあるコードだと思います。
 というのは、ページフッタが印刷される時点において、
変数SIRE等の値が、当該ページにおける最終レコードまでの仕入額等の合計額となっている
保証がないからです。
 なので、これらのプロシージャを使って、仕入額等の合計を出すのは不安です。

>10ページ目だけを印刷した場合に10ページの部分のみの数値が計算されてしまいます。
とのことですが、この原因もこの不安が原因なのではないかと思います。
 
 もっとも、上記引用の事態については、本当にそうなのかなと思いますし、
実験してみたわけではないので、私の考えは外している可能性もあります。


 一応、私の不安を前提として考えを進めると、
仕入額の合計を出す方法として、他の方法を採用してみたらどうだろうかと思います。
 累計を使う方法です。


 その方法ですが

1 詳細セクションに集計用のテキストボックス(txt仕入れ累計)を設けます。

2 その集計実行プロパティを「全体」にし、その可視プロパティを「いいえ」にします
(ただし、テストのためには、可視プロパティは「はい」にしておいた方が確認しやすいです)。

3 詳細セクションの印刷時イベントで、txt仕入れ累計の値を、
ページフッタで「仕入計」を表示するテキストボックス(txt仕入れ計)に代入する
というコードを書きます。


 この方法については、簡単なサンプルを作り、1回だけテストしてみましたが、
御希望のことが実現できそうです。


 とはいえ、上記3で印刷時イベントを使うことについては、不安もあります。
 レポートのイベントのメカニズムはかなり複雑なため、本当に印刷時イベントでいいのだろうかと
思うからです。
 なお、イベントのメカニズムについては、

hatena chips 〜レポートのイベントの発生メカニズムの研究
ht tp://hatenachips.blog34.fc2.com/blog-entry-147.html

hatena chips 〜レポートのイベントの発生メカニズムの研究 その2
ht tp://hatenachips.blog34.fc2.com/blog-entry-148.html

が参考になります。
私の知る限り、これに関する唯一の文献であり、目を開かせてくれると思います。必見です。

 この文献を元に研究してみてください。
・ツリー全体表示

【12933】Re:指定文字数にしたい
お礼  あおぎん  - 16/2/4(木) 19:01 -

引用なし
パスワード
   ▼かるびの さん:

対応方法を教えていただいてありがとうございます。
すっかりお返事遅くなりまして申し訳ないです。

実際やってみてからと思っていたんですが、どうもうまくいかず。。

CSV作成用データベースで動かすとコンパイルエラーとなってしまいます。

あきらめてまっさらのデータベースでやってみるとうまくいきました!
CSV作成用のデータベースだとなぜできないのだろう??

何はともあれありがとうございました!
・ツリー全体表示

【12932】Re:ページフッターの合計
質問  maiu  - 16/2/3(水) 17:05 -

引用なし
パスワード
   レポート部分--------------------------------------------------------
ページフッター

上記の部分
 ○ページヘッダー
 ×ページフッター
 でした。訂正いたします。
・ツリー全体表示

【12931】ページフッターの合計
質問  maiu  - 16/2/3(水) 17:02 -

引用なし
パスワード
   いつも参考にさせてもらってます。

Access2003レポートで仕入れ等の計算を行っており

レポート部分--------------------------------------------------------
ページフッター
 [取引先] [仕入額]  [税]   [合計]
詳細
 [GYOSYA] [SIREGAKU] [ZEI]  [GOKEI]
 A社   \1,000   \80    \1,080 [=funcKEISAN](背景色:白)
 B社   \2,000   \160   \2,160 [=funcKEISAN](背景色:白)
 C社   \3,000   \240   \3,240 [=funcKEISAN](背景色:白)
 ・
 ・
ページフッター
      [仕入計]  [税計]  [合計計]
      (非連結) (非連結)  (非連結)

---------------------------------------------------------------------
このようにレポートを作っており
VBAで
VBA部分--------------------------------------------------------------
Dim SIRE As Long,ZEI As Long,GOKEI As Long
Function funcKEISAN()
  SIRE = SIRE + Me.SIRE
  ZEI = ZEI + Me.ZEI
  GOKEI = GOKEI + Me.GOKEI
End Function

Private Sub ページフッターセクション
  Me.仕入計 = SIRE
  Me.税計 = ZEI
  Me.合計計 = GOKEI
End Sub
---------------------------------------------------------------------

このようにしてページフッター毎に数値が加算される仕組みなのですが
例えばこれが10ページまであるとして
10ページ目だけを印刷した場合に10ページの部分のみの数値が計算されてしまいます。
当然ですが・・・
ページ指定した時でもそのページまでの分は計算される方法というのはあるでしょうか?
VBAの詳細セクションに単純にSIRE = SIRE + Me.SIRE を記述するとレポートの見た目的には
表示されてない次のレコードの分までの加算されており、数値がおかしくなってしまいます。
レポートに表示されてない分までVBA上で計算してしまうのは仕様ということをお聞きしました。

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

【12930】Re:カレントレコードのサブIDが前のレコ...
発言  まるこ  - 16/1/18(月) 13:28 -

引用なし
パスワード
   自己解決しました
テーブルAをダブルクオテーションで囲んだら出来ました
すみませんお騒がせしました

また来ると思いますのでその時はよろしくお願いします
・ツリー全体表示

【12929】Re:カレントレコードのサブIDが前のレコ...
発言  まるこ  - 16/1/18(月) 13:15 -

引用なし
パスワード
   間違えました

rs!連番 = rs!連番 - 1



rs!連番 = rs!連番2 - 1

でした
すみません
・ツリー全体表示

【12928】Re:カレントレコードのサブIDが前のレコ...
発言  まるこ  - 16/1/18(月) 13:12 -

引用なし
パスワード
   かるびの様

回答いただいたのを参考に
下記コードを作ってみましたが、いきなり詰まっています。うまく動きません
おかしいところをご指摘いただけませんでしょうか?

Private Sub ボタン_Click()
Dim db As DAO.Database
Set db = CurrentDb
Dim rs As DAO.Recordset

 DoCmd.OpenQuery "AQ_クエリA" ・・・・クエリAが書き込み不可能の為テーブルAを作成するためのアクションクエリ(テーブルAが作成されます)
 Set rs = db.OpenRecordset(テーブルA)・・・・※エラー箇所 「入力テーブルまたはクエリ"が見つかりませんでした。そのテーブルやクエリが存在していること、または名前が正しいことを確認してください。」と出ます
 
 Do Until rs.EOF
rs.Edit
rs!連番 = rs!連番 - 1

rs.Update
rs.MoveNext
Loop

    rs.Close
    Set rs = Nothing

    db.Close: Set db = Nothing

End Sub

ネットでコードを必死で探して作ってみたのでもしかしたら根本的な事がわかってないかもしれません
よろしくお願いします
・ツリー全体表示

【12927】Re:カレントレコードのサブIDが前のレコ...
発言  まるこ  - 16/1/17(日) 0:19 -

引用なし
パスワード
   かるびの様
ご回答ありがとうございます
なかなか難しいのですね
確かにレコードは削除しまくりです
じっくり読ませて頂いて頑張ってやってみます

時間かかるかもしれませんが必ず結果を報告に参ります
ありがとうございました
・ツリー全体表示

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