条件によって、レコード一件ずつ、詳細セクションの高さを変えたいんですけど、
Me.Section(0).Height=変数
(変数は、条件によってレコード一件ずつ変わります)
で出来ないんです...
何か間違っていますか?

このQ&Aに関連する最新のQ&A

A 回答 (4件)

はい、マズイ点と言うか、何でこうじゃないといけないの?


というかアクセスのバグなのか、よく分からないのですが、
詳細セクションの"高さ"プロパティ変更コードを、他のプロパティ変更コードよりも後に持ってきて下さい

今回のコーディングでは、
'~~~~~~~~~~
If i_cnt <= 1 Then
Me.Section(0).Height = 240
Else
hei = 240 * i_cnt
'Me.Section(0).Height = hei 'コメントアウト
Me!w_a.Height = hei
Me!直線20.Height = hei
Me!直線21.Height = hei
Me!直線22.Height = hei
Me!直線23.Height = hei
Me!直線24.Height = hei
Me!直線25.Height = hei
Me!直線12.Top = hei
Me.Section(0).Height = hei '←ここに移動
End If
'~~~~~~~~~~
こうする事が望ましいと思われます
(もちろん、詳細のフォーマットイベントプロシージャで行います)

アクセスは、フォームで出来る事が、レポートでは出来ない場合が多いので苦労します(T_T)
(または別の手順で行う...)
    • good
    • 0
この回答へのお礼

早速試してみたんですけど、ダメでした...
条件のi_cntのIf文で、可変にならないんです!(-_-;)
ある程度、Accessのレポートは使いこなしてきたつもりでしたが、こんなちょっとした設定にここまで悩まされるなんて、思いもしませんでした。悔しい~!!(ーー;)

お礼日時:2001/09/17 20:11

こんなサンプル文を作成してみました


奇数行だったら、高さ1000 twip 背景色を赤色にする
偶数行だったら、高さ500 twip 背景色を黄色にする
にするコーディングです
'~~~~~~~~~~
Private Sub 詳細_Format(Cancel As Integer, FormatCount As Integer)
Static a As Integer
a = a + 1
If (a Mod 2) = 0 Then
Me.Section(0).Height = 1000 '高さを1000twipにする
Me.Section(0).BackColor = 255 '背景色を赤色にする
Else
Me.Section(0).Height = 500 '高さを500twipにする
Me.Section(0).BackColor = RGB(255, 255, 0) '背景色を黄色にする
End If
End Sub
'~~~~~~~~~~
このままレポートの詳細のフォーマット時イベントプロシージャに貼り付けて確認してみてください
もし、これでもダメな場合は、
どのようなエラーメッセージ?等がでるのか教えて下さい
(またはどのような状態か?)
何度もすみませんm(_ _)m
    • good
    • 0
この回答へのお礼

返答が遅くなってしまって、すみません!!

Ifの条件には、

For i = 55 To 1000 Step 55
i_cnt = i_cnt + 1
If len_wa <= i Then
Exit For
End If
Next i

のi_cntの値で試してみたんですけど、どうもこの先で、

If i_cnt <= 1 Then
Me.Section(0).Height = 240
Else
hei = 240 * i_cnt
Me.Section(0).Height = hei
Me!w_a.Height = hei
Me!直線20.Height = hei
Me!直線21.Height = hei
Me!直線22.Height = hei
Me!直線23.Height = hei
Me!直線24.Height = hei
Me!直線25.Height = hei
Me!直線12.Top = hei
End If
としたら、可変にならないんです。
教えて頂いた、色で可変の文なら上手くいってたんですよ。
どこかマズイ点、ありますか?

お礼日時:2001/09/17 15:22

その後、どのようになったでしょうか?


もしダメでしたら、以下のことについて教えて下さい

(1)レポートの種類は「単票」ですか?それとも「帳票」ですか?
詳細セクションのプロパティ→「書式」→「改ページ」にて確認できます
※ページヘッダー(フッター)または、グループヘッダー(フッター)が付加されていない状態で、"しない"だと「帳票」です

(2)現在の詳細セクションの「高さ」はどのくらいですか?
詳細セクションのプロパティ→「書式」→「高さ」にて確認できます

前回のコーディングで、
>詳細.Height = 2000
と書きましたが、これはtwip単位で記しております
twip単位とは...
「1cm」は、「567twip」です( 1 cm = 567 twip )

もし、前回のコーディングをそのまま使用していれば、(条件文だけ変えて...)
「高さ」の値が"3.5cm"以上だと視覚的にどのように動作しているか分からない状態になってしまいます

あと余談ですが、詳細セクションにあるテキストボックスのプロパティの「書式」→「印刷時拡張」を"はい"にすると、文字量が多ければ自動で詳細セクションが拡張されます

この回答への補足

レポート自体は、帳票式で、
現在の詳細セクションの高さは、0.46cm
 (twipの記載では、240)
詳細セクションのテキストの、印刷自動拡張は、"いいえ"

になっています。
これで、何か原因が見つかれば良いのですが...
どんなもんでしょう?(-_-;)

補足日時:2001/09/11 13:21
    • good
    • 0

詳細セクションのフォーマットイベントを使用しましょう


'~~~~~~~~~~
'サンプル(IF文には、条件を指定して下さい)
Private Sub 詳細_Format(Cancel As Integer, FormatCount As Integer)

If (CSng(Me![Ver]) Mod 2) > 0 Then
詳細.Height = 2000
Else
詳細.Height = 1000
End If

End Sub
    • good
    • 0
この回答へのお礼

ご返答、有難うございます!
試してみたのですが、Ifの条件分岐を使っても、ダメでした...(ーー;)

お礼日時:2001/09/08 14:24

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Q雨降ると気温って下がるんでしょうか?

雨降るとその日の前後より気温が下がる傾向にあると思うんですが雨降るとやはり気温は下がるものなんでしょうか?

昨日も(東京)けっこう暑かったのに雨降った途端少し涼しくなったので気になりました。

Aベストアンサー

  こんばんは。

 確かに雨が降ると気温は下がります。

 それと、気温が高くて地面、都内でしたらアスファルトが熱せられて表面が熱くなっていますが、雨水で冷やされるのと、打ち水の原理で水が気化するときに周囲の熱を奪うので気温が下がって涼しくなるといういくつかの理由が重なって、涼しくなるということです。

 真夏の夕立ちの後はとても涼しくなるというのもその理由です。

Q【MS Access2000 VBA ですが】 レポートの詳細セクションで、最終レコードである事を知る方法

MicroSoft Access2000 VBAでアプリケーションを作成しています。

あるテーブルをレコードソースとしてレポートを出力しています。
「詳細セクション」で、現在印刷するレコードが最終レコードである事を知る方法を調べています。
ご存知の方いらっしゃいましたらよろしくお願い致します。

Aベストアンサー

こんにちは。maruru01です。

あらかじめ、レポートソースのレコード数を取得しておいて、詳細セクションのFormatイベントで、カウンタ変数をインクリメントしていき、レコード数と比較すればいいのではないでしょうか。
データ数は、DCount関数で取得出来ます。


(レポートの宣言部)
Private DataCount As Long 'データ総数
Private Counter As Long 'カウンタ

(Report_Openイベント)
DataCount = DCount("フィールド名", "テーブル名" ,抽出条件)
Counter = 0

(詳細_Formatイベント)
Counter = Counter + 1
If Counter = DCount Then
  MsgBox "最終データ"
End If

Q雪が降らないと気温が下がる??

東北に住んでます。
夜中に除雪の仕事をしていていつも思うのですが、
雪がまったく降らない夜はいつもより温度が下がって寒くなります。
通常が、-2~4なのに対し、まったく降らないときは-7~10です。

雪が降らないと気温が下がるのでしょうか?それとも気温がかなり下がると雪が降らないんでしょうか?
どっちなのでしょう。
詳しく説明できるかた、おねがいします。

Aベストアンサー

雪雲が頭上に無い晴れた状態では、放射冷却で気温が下がります。

逆に雲がかかった状態では放射冷却は起き難いので気温低下にはつながりません。

その関係ではないでしょうか?

つまり・・・↓↓↓

雪が降らない=晴れて放射冷却が起きる=気温低下。

雪が降る=雪雲で覆われている=放射冷却が起きない=暖かい。

参考まで。

Q変数に「.」が含まれる場合...

例えば・・・
Dim ABC As String '変数ABC の型宣言
ABC = "1.0"
DEF = "522"
…とまぁ、こんな感じの時。(文法とか、いいかげん)
変数ABCに「.」が含まれている時といない時に
特定の動作をさせたいんです。

変数ABC「.」が含まれていない時
ABC = DEF
「.」が含まれている時
「.」より右の数字を消して
ABC & DEF

Select Case、もしくはIF文を使って動作させる予定です

変数は、3文字限定です。それと、「.」の位置は
左か真ん中になることもあります。
例)ABC = .12
ABC = 0.1
  ABC = 012

…なんとなく、Format関数を使ったら
できそうな気がするんですが…。

Aベストアンサー

ppos = InStr(ABC, ".")
If ppos = 0 Then
ABC = DEF
Else
ABC = Left(ABC, ppos - 1) & DEF
End If

Q太陽表面より温度が低い黒点が減ると、地球の気温が下がるのはなぜ?

太陽黒点がゼロになったというニュースを見ました。
太陽表面(6000K)よりも温度が低い太陽黒点(4000K)が減ると、
地球の気温が下がるのはなぜなのでしょうか?
直感的には逆で、黒点が減ると太陽表面温度が上がり
地球の気温も上がるように思うのですが・・・

Aベストアンサー

 衛星による観測結果として、黒点が多い時期の方が少ない時期と比べて、平均として太陽が明るいことがわかっています。太陽からの可視域での(以下、同じ)放射エネルギーの変動は、均してみれば0.2%程度です。

 大きな黒点が出れば、太陽の明るさは0.2%程度暗くなりますが、これはいわば"瞬間値"です。長い目で見れば、黒点が多い活動期には白斑も多く出ており、ここからのエネルギー放射が黒点によって抑えられる放射より大きく、このために黒点が多い時期の方が明るいのだろう、というのが現在の解釈です。

 さて、地球が楕円軌道を描いて太陽の周りを回っていることはご存知のことと思います。楕円であることにより、地球に届く太陽からの放射エネルギーはどれくらい変動するのでしょうか? 太陽3個分ほどの距離の変動がある、つまり3%ほど太陽-地球間の距離が変わりますから、放射エネルギーの変動は(太陽を中心とする球面の面積で効いてくるので)、ラフな計算で6%となります。太陽放射エネルギーの0.2%の変動はこれに比べたら話になりません。季節変動の方が、遙かに大きいのです。

 黒点が減ると地球の気温が下がる?・・・って、黒点が"少ない"期間としていったいどれくらいの年月を想定しての話なのでしょうか?

 ということで、数十年というようなよほど長い期間黒点が無かったりしない限り、地球の気温と黒点数との関係はあるかないかまったくわかっていないというのが実情です。

 ただし、紫外線やX線の放射量はかなり大きく変化しますから、このことによる変動はあるかもしれません。あくまでも"かもしれない"というだけで、黒点数と気候変動の関係はまだ解明されていないという理解が最も望ましい理解の仕方だと思います。

 衛星による観測結果として、黒点が多い時期の方が少ない時期と比べて、平均として太陽が明るいことがわかっています。太陽からの可視域での(以下、同じ)放射エネルギーの変動は、均してみれば0.2%程度です。

 大きな黒点が出れば、太陽の明るさは0.2%程度暗くなりますが、これはいわば"瞬間値"です。長い目で見れば、黒点が多い活動期には白斑も多く出ており、ここからのエネルギー放射が黒点によって抑えられる放射より大きく、このために黒点が多い時期の方が明るいのだろう、というのが現在の解釈で...続きを読む

Q2レコードずつ表示させたい。

VB2005、FlexGrid.NET環境です。
SQLを投げて、結果をグリッドに表示するプログラムを作っています。

ちょっとややこしいのですが…。

たとえば、

テーブルA   テーブルB
-----------------------------------------
ごはん朝
-----------------------------------------
魚朝
-----------------------------------------
肉夜
-----------------------------------------

テーブルAには、食べ物の一覧のデータが入っていて、
JOINするテーブルBにはそれを朝食べたのか夜食べたのか判定する
フラグがあります。

これを、下記のようにしたいのですが

テーブルA   テーブルB
-----------------------------------------
ごはん朝 ○
ごはん      夜
-----------------------------------------
魚 朝 ○
魚       夜
-----------------------------------------
肉朝
肉夜 ○
-----------------------------------------

SQL的には、フラグのカラムが0なら朝、1なら夜、みたいに
表示しているのですが、キーが複数個あるので、朝と夜、肉を
食べたということもありえます。
なので、フラグに関わらず、朝と夜の2レコードを表示させて
おきたいのですが、この動作を実現させる方法を教えていただけ
ないでしょうか?

ImportRowとか使えば出来そうな気がするんですが、うまくいかず
困っています。

VB2005、FlexGrid.NET環境です。
SQLを投げて、結果をグリッドに表示するプログラムを作っています。

ちょっとややこしいのですが…。

たとえば、

テーブルA   テーブルB
-----------------------------------------
ごはん朝
-----------------------------------------
魚朝
-----------------------------------------
肉夜
-----------------------------------------

テーブルAには、食べ物の一覧のデータが入っていて、
JOINするテーブルBにはそれを朝食べたのか夜食べたのか判定す...続きを読む

Aベストアンサー

VB側で処理するより、SQL側で処理した方が早いかな?
・テーブルAとテーブルBをLEFT JOINでつなぐ。
・朝食べたものだけを抽出するクエリと夜食べたものだけを抽出するクエリをUNIONする。 
て感じで。こうすれば各食べ物で2行ずつ出るはずです。

SELECT テーブルA.* ,
テーブルB.フラグ ,
'1' AS SORTFLG
FROM テーブルA
LEFT JOIN テーブルB ON テーブルA.食べ物 = テーブルB.食べ物
WHERE テーブルB.フラグ = 朝

UNION

SELECT テーブルA.* ,
テーブルB.フラグ ,
'2' AS SORTFLG
FROM テーブルA
LEFT JOIN テーブルB ON テーブルA.食べ物 = テーブルB.食べ物
WHERE テーブルB.フラグ = 夜

ORDER BY テーブルA.食べ物,SORTFLG

Q気温が下がる頃から目が痛む

最近、パソコンの画面を見ていると、午後ぐらいから目が痛み出します。
午前中は感じません。
夏場は、目の痛みは全くないです。
秋の気温が下がる頃からです。
ドライアイの季節でもないと思います。

気温と目の痛みは関連があるのでしょうか?
また対処法を教えて下さい。

Aベストアンサー

お邪魔させていただきます。
考えられる病気
<ドライアイ>
目の乾燥によって涙が不足してしまい、角膜に傷をつけてしまいます。異物感やゴロつきなどの痛みが生じます。
ドライアイになる最初の原因は眼球表面の涙液の量が減ることですが、それには涙液の分泌の低下と、涙液の蒸発が多くなることの二つが影響しています。その背景として、次のような要因があげられます。
空気が乾燥していると、目の表面から涙液が蒸発しやすくなります。このためドライアイの人の多くは、秋から冬にかけての季節の変わりめに症状が強くなります。
本来は湿度が高い夏場も、エアコンの利いた部屋にいると目が乾きます。
<眼精疲労>
眼の奥に重い痛みを感じる事があります。疲れの原因は様々ですが、眼精疲労を訴える人の半分以上にドライアイの症状が併発していることがわかっています。
<緑内障>
眼球内の圧力(眼圧)が上がり視神経が侵され、視力低下や視野狭窄をおこします。急に眼圧が上がる急性の緑内障発作では眼の痛みに加え頭痛・吐き気などもあり、短時間で失明に繋がる可能性もある、早急な治療が必要な病気なのです。
緑内障は眼圧が高くことなることで視神経が圧迫され、それによって視野が狭くなるなど障害が起きる病気です。
眼圧は座っている時と寝ている時でも変化があるなど変動が多いのですが、季節によっても変化があります。特に冬には眼圧が上がる傾向にあり、注意が必要です。その理由は、眼圧の調整には自律神経が関与しているからだと言われています。気温が下がると体温を上げようと、自律神経の中の交感神経系が活発になり、興奮状態になり眼圧が上がるのではないかと考えられています。

対処法は
まず眼科に受診。適切な指導を受け治療(目薬の点眼)じゃないですか。
もし、緑内障だったら、失明する可能性もありますから。

お邪魔させていただきます。
考えられる病気
<ドライアイ>
目の乾燥によって涙が不足してしまい、角膜に傷をつけてしまいます。異物感やゴロつきなどの痛みが生じます。
ドライアイになる最初の原因は眼球表面の涙液の量が減ることですが、それには涙液の分泌の低下と、涙液の蒸発が多くなることの二つが影響しています。その背景として、次のような要因があげられます。
空気が乾燥していると、目の表面から涙液が蒸発しやすくなります。このためドライアイの人の多くは、秋から冬にかけての季節の変わりめに症...続きを読む

QADOでループすると1レコードずつ飛ばしてしまう

アクセスなのですが

Sub test()
Set cn = CurrentProject.Connection
rs.Open "テーブル", cn, adOpenKeyset, adLockOptimistic
rs.Filter = "(店名 = '" & str店名 & "') And (URL = '未')"

For j = 1 To rs.RecordCount

rs("URL") = "http"
rs.Update

rs.MoveNext
Next

rs.Close: Set rs = Nothing
cn.Close: Set cn = Nothing
End Sub


このようにして、既存のレコードにフィルタをかけて該当のレコードの値を更新しているのですが
rs.MoveNext
をいれると、
1レコード目、3レコード目、5レコード目・・・と言う順番になってしまい、
最終的にrs.RecordCountの数を越したレコードを指定してしまい

実行時エラー 3021

「BOFとEOFのいずれかTRUEになっていか、または現のレコードが要求された操作には、現在のレコードが必要です。」

となってしまいます。

だからって rs.MoveNextをいれないと、rs.RecordCountに達するまで、
いつまでも同じレコードをループしてしまいます。

1レコードずつ順番にデータを掴む方法を教えてください。

アクセスなのですが

Sub test()
Set cn = CurrentProject.Connection
rs.Open "テーブル", cn, adOpenKeyset, adLockOptimistic
rs.Filter = "(店名 = '" & str店名 & "') And (URL = '未')"

For j = 1 To rs.RecordCount

rs("URL") = "http"
rs.Update

rs.MoveNext
Next

rs.Close: Set rs = Nothing
cn.Close: Set cn = Nothing
End Sub


このようにして、既存のレコードにフィルタをかけて該当のレコードの値を更新しているのですが
rs.MoveNext
をいれると、
1レコード目、3レ...続きを読む

Aベストアンサー

原因は、CursorLocation が規定値の adUseServer になっているので
Rs.Filter してしまうと 正しく動いてくれません。

Set cn = CurrentProject.Connection
rs.CursorLocation = adUseClient '←追加
rs.Open "テーブル", cn, adOpenKeyset, adLockOptimistic

とするか Filter ではなく

rs.Open "SELECT * FROM テーブル WHERE 店名 ='" & str店名 & "' and URL ='未'", cn, adOpenKeyset, adLockOptimistic
'rs.Filter = "(店名 = '" & str店名 & "') And (URL = '未')"
とSQL中にWHERE句で指定します。

でも、更新クエリで片づけたほうが良さそうにも思えます。
UPDATE テーブル SET テーブル.URL = 'http'
WHERE [テーブル].URL='未' AND [テーブル].店名='来々軒';

原因は、CursorLocation が規定値の adUseServer になっているので
Rs.Filter してしまうと 正しく動いてくれません。

Set cn = CurrentProject.Connection
rs.CursorLocation = adUseClient '←追加
rs.Open "テーブル", cn, adOpenKeyset, adLockOptimistic

とするか Filter ではなく

rs.Open "SELECT * FROM テーブル WHERE 店名 ='" & str店名 & "' and URL ='未'", cn, adOpenKeyset, adLockOptimistic
'rs.Filter = "(店名 = '" & str店名 & "') And (URL = '未')"
とSQL中にWHERE句で指定します。

でも...続きを読む

Qなぜ標高が高いほど気温が下がるの?

 大気圏外、例えば宇宙空間や月世界では日向の温度は凄く高いと聞きました。

 では大気圏内では何故、標高が高くなるにつれて気温が下がるのでしょうか

 単純に考えると太陽に近づくから暖かくなるって思うのですが、、

 『人生半ばにして、馬鹿か?』と思われるかもしれませんが、ご回答お願い致します。

Aベストアンサー

太陽に近い、遠いの前に気圧が関係しています。冬に缶コーヒーの蓋を開けないまま直火にかけると強烈な音とともに破裂してしまいます。これは缶の中の空気や水分が暖められて膨張し体積を増して缶の中の圧力が高くなった結果です。破裂する手前で缶を冷やしてやると中の空気が収縮し圧力は低くなる。逆に気圧を変えても同じことが起こります。気圧を高めれば温度が上がり、気圧を下げれば温度がさがります。(ボイル.シャルルの法則)
高い山に登ると気圧が下がるため100mにつき0.5度C下がります。1000mでは5度Cも下がることになってしまいます。

Qレコードセット(ADO.Recordset)で処理レコードは何番目?

excel2010 vbaでoracleに接続(ODBC)してレコード処理します。
変数でカウントしないと自分のレコード番号がわからないのですか。
プロパティ メゾットで知ることはできないですか。
(中略)
dim cut as long
Dim rs as ado.recordset
'--オープン処理
With rs
do until .EOF
 cnt = cnt + 1
rs.xxxx '---ここで何件目かしりたい
.movenext


Loop
End With

Aベストアンサー

多分、次の命令でレコード番号が分かるかと思います。
お試しください。

 rs.AbsolutePosition


人気Q&Aランキング

おすすめ情報