Access VBA質問箱 IV

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

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


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

【11564】Re:Excel出力時の条件について
発言  247b  - 10/4/1(木) 9:54 -

引用なし
パスワード
   おつかれさまです。

状況が今ひとつ掴めないのですが、経験的にいって、条件が足りないと聞かれる場合は、クエリに解析できない変数が存在していることが多いです。
プログラムを拝見するかぎり、クエリ1のSQLに何か問題がないでしょうか。

パーセント表記については、もっと良い方策があると思いますが、すぐに思いつくのは、SQLの項目を
Cstr(0.9*100)&"%" とすれば行けるはずです。実際には0.9をカラム名に置き換えます。
ただし、この方式だと、データ量が多いと処理に時間がかかります。
・ツリー全体表示

【11563】Re:DBアクセスでコンパイルエラー
発言  アクセス引継人  - 10/4/1(木) 7:27 -

引用なし
パスワード
   ▼アクセス引継人 さん:
>▼よろずや さん:
>>▼アクセス引継人 さん:
>>>ACCESS2003で動作しているマクロが2007では、下記 「.Edit」で
>>>コンパイルエラーが発生します。
>>>メソッドまたはデータ メンバが見つかりません。 (Error 461)
>>>何か環境が不足しているのでしょうか?
>>>
>>>strSQL = "select * from " & strUseTable & " where 年月= '" & lCnt & "'"
>>>Set Rs2 = dbs.OpenRecordset(strSQL, dbOpenDynaset)
>>>Rs2.Edit
>>
>>ACCESS2003ではDAOを使っていたのでしょう。
>>
>>ACCESS2007では明示的にDAOを指定しないとADOとみなされます。タブン
>>ADOの場合は、Editというメソッドはありません。
>
> 早速の回答ありがとうございます。
> ただ、ADO、DAOもわからないので、具体的にどのような設定をすれば
>良いか教えていただけるとたすかります。恐縮です。

VBEの参照設定で、ADOEの優先順位をADOより上げてみたら、
動作しました。
 これでよろしいのでしょうか?
・ツリー全体表示

【11562】Re:DBアクセスでコンパイルエラー
質問  アクセス引継人  - 10/4/1(木) 6:06 -

引用なし
パスワード
   ▼よろずや さん:
>▼アクセス引継人 さん:
>>ACCESS2003で動作しているマクロが2007では、下記 「.Edit」で
>>コンパイルエラーが発生します。
>>メソッドまたはデータ メンバが見つかりません。 (Error 461)
>>何か環境が不足しているのでしょうか?
>>
>>strSQL = "select * from " & strUseTable & " where 年月= '" & lCnt & "'"
>>Set Rs2 = dbs.OpenRecordset(strSQL, dbOpenDynaset)
>>Rs2.Edit
>
>ACCESS2003ではDAOを使っていたのでしょう。
>
>ACCESS2007では明示的にDAOを指定しないとADOとみなされます。タブン
>ADOの場合は、Editというメソッドはありません。

早速の回答ありがとうございます。
 ただ、ADO、DAOもわからないので、具体的にどのような設定をすれば
良いか教えていただけるとたすかります。恐縮です。
・ツリー全体表示

【11561】Re:DBアクセスでコンパイルエラー
回答  よろずや  - 10/3/31(水) 22:21 -

引用なし
パスワード
   ▼アクセス引継人 さん:
>ACCESS2003で動作しているマクロが2007では、下記 「.Edit」で
>コンパイルエラーが発生します。
>メソッドまたはデータ メンバが見つかりません。 (Error 461)
>何か環境が不足しているのでしょうか?
>
>strSQL = "select * from " & strUseTable & " where 年月= '" & lCnt & "'"
>Set Rs2 = dbs.OpenRecordset(strSQL, dbOpenDynaset)
>Rs2.Edit

ACCESS2003ではDAOを使っていたのでしょう。

ACCESS2007では明示的にDAOを指定しないとADOとみなされます。タブン
ADOの場合は、Editというメソッドはありません。
・ツリー全体表示

【11560】DBアクセスでコンパイルエラー
質問  アクセス引継人  - 10/3/31(水) 10:19 -

引用なし
パスワード
   ACCESS2003で動作しているマクロが2007では、下記 「.Edit」で
コンパイルエラーが発生します。
メソッドまたはデータ メンバが見つかりません。 (Error 461)
何か環境が不足しているのでしょうか?

strSQL = "select * from " & strUseTable & " where 年月= '" & lCnt & "'"
Set Rs2 = dbs.OpenRecordset(strSQL, dbOpenDynaset)
Rs2.Edit
・ツリー全体表示

【11559】Re:SQLについて
発言  初心者papa  - 10/3/30(火) 12:38 -

引用なし
パスワード
   すいません。自己解決しました。

日付ごとに並んでいるデータがあり、
それをクエリで倉庫ごとに集計して、
別テーブルに追加したかったのですが、
全ての倉庫が追加されずに悩んでいました。

倉庫の集計は、クエリを作成し、デザインビューの抽出条件
で計算していたのですが、
[倉庫]Like "A*"『Aを含む』と集計しており、
その分が追加されていないのに気がつき、
[倉庫]="A123"と1個づつ指定したらうまく行きました。

てっきりSQLの文法ミスかと思い質問した次第です。

申し訳有りませんでした。
・ツリー全体表示

【11558】Re:SQLについて
発言  よろずや  - 10/3/29(月) 21:48 -

引用なし
パスワード
   >strSql = "SELECT Q_倉庫集計.倉庫コード," & _
>      "Q_倉庫集計.倉庫," & _
>      "Q_倉庫集計.数量の合計," & _
>      "Q_倉庫集計.稼働," & _
>      "Q_倉庫集計.開始日" & _
>      " FROM Q_倉庫集計" & _
>      " WHERE Q_倉庫集計.開始日 Is Not Null" & _
>      " ORDER BY Q_倉庫集計.倉庫コード, Q_倉庫集計.開始日"

の結果は希望のものすべてが抽出されるのですか。
・ツリー全体表示

【11557】SQLについて
質問  初心者papa  - 10/3/29(月) 19:14 -

引用なし
パスワード
   下記コードでSQLを実行すると、全ての倉庫が追加になってくれれば
いいのです、1つの倉庫しかテーブルに追加されません・・・
素人ですいません。

strSql = "INSERT INTO T_仕掛(集計済み)" & _
     "( 倉庫コード," & _
     "倉庫," & _
     "数量," & _
     "稼働," & _
     "開始日 )" & _
      " SELECT Q_倉庫集計.倉庫コード," & _
      "Q_倉庫集計.倉庫," & _
      "Q_倉庫集計.数量の合計," & _
      "Q_倉庫集計.稼働," & _
      "Q_倉庫集計.開始日" & _
      " FROM Q_倉庫集計" & _
      " WHERE Q_倉庫集計.開始日 Is Not Null" & _
      " ORDER BY Q_倉庫集計.倉庫コード, Q_倉庫集計.開始日"

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

【11556】Excel出力時の条件について
質問  VBA初心者  - 10/3/29(月) 16:41 -

引用なし
パスワード
   いつもお世話になります。

 単純にフォームに表示されているデータをEXCELに出力したいのですが、
出力するときに、クエリを作成しているときの条件(>=[日付はいつ?]) 
が聞かれてしまいます。
 あくまで、フォーム上に表示されているデータのみをExcelに出力する方法は
ないでしょうか。
 また、Excelに出力するときに、「%」で出力したいセルがあるのですが、どの
ような指定をしたらよろしいでしょうか。
 現在はフォーム上では「90%」のように表示されているのですが、Excelに出力
すると、「0.9....」のように出力されてしまいます。
 お忙しい中恐縮ですが、どなたかご教授をお願いします。下記にコードを記載
致します。

-----------------------VBA---------------------------------------------
Private Sub コマンド13_Click()

On Error GoTo エラー

  Dim varAccess As Variant
  Dim varExcelPass As Variant
  Dim strmsg As String
  
  Dim myDir As String 'デスクトップ定数
  myDir = CreateObject("WScript.Shell").SpecialFolders("Desktop")
  
  
  varAccess = "クエリ1" '
  varExcelPass = myDir & "\" & Format(Date, "yyyy_mm_dd") & "情報収集.xls" ' --- C


  'If MsgBox(strmsg, vbOKCancel) = vbOK Then
    
    DoCmd.TransferSpreadsheet acExport, _
          acSpreadsheetTypeExcel9, varAccess, varExcelPass, True '--- D
    MsgBox "データ出力は、正常に完了しました。"
    
  'End If
  
  Exit Sub
  
エラー:
  
  If Err.Number = 3044 Then ' --- E
    MsgBox "Excelファイルのパス指定が誤っています。", vbCritical
  Else
    MsgBox "予期せぬエラーが発生しました。", vbCritical
  End If


End Sub
・ツリー全体表示

【11555】Re:エクセルのイベント取得
お礼  pon  - 10/3/29(月) 12:44 -

引用なし
パスワード
   ▼YU-TANG さん:
お手数おかけします


>それはコード実行中に値を確認するためのウィンドウです。
>コード実行中でなければ何も表示されません。そういうものです。
ありがとうございます
>そういうものです。
こういうアドバイス助かります
了解です


>クラスは設計図みたいなものですから、参照する実体がありません。
・・
>その形で取得・参照したいなら、xlsApp を Public なり Friend なりで
詳細な解説ありがとうございます
わかり易いです
頂いたアドバイスでクラスの理解を深めるよう勉強したいと思います


追記
短絡的に
>質問[NEW] pon - 10/3/28(日) 18:16 -
>CreateObjectしているので
>別途エクセルが先行して開いていても問題は無いと考えています
と思ったのですが
指定ブックを開いたあと新規ブックが開かれる等
面倒が出そうなので

Class_Initialize時
GetObjectで確認、無ければCreateObjectし

xlsApp_WorkbookBeforeClose時は
当該ブックの時だけ実行

で、希望の操作がかないそうです


YU-TANG さん

色々ご教示ありがとうございました
今後もよろしくお願い致します
・ツリー全体表示

【11554】Re:エクセルのイベント取得
回答  YU-TANG  - 10/3/29(月) 8:16 -

引用なし
パスワード
   こんにちは、YU-TANG です。

> 他に確認すべき事項とか注意事項ありますでしょうか

ありません。

> ローカルウインドウには何も表示されていません

それはコード実行中に値を確認するためのウィンドウです。
コード実行中でなければ何も表示されません。そういうものです。
どこかプロシージャの中でブレークポイントまたは Stop とかで
止めると表示されると思います。

> 取得したいと ?Class1.xlsApp.Wb.Name してみましたが
> 実行時エラー '424':
> オブジェクトが必要です。

ブレーク中なら、

?bokWork.Name

とかで取れるはずです。

?Class1

は、クラスを指定していますからダメです。
クラスは設計図みたいなものですから、参照する実体がありません。
インスタンス (objClass1) の方を指定しないといけません。
しかも、インスタンスを指定したところで、現状 xlsApp は外部公開
されていないので、外からアクセスできません。
その形で取得・参照したいなら、xlsApp を Public なり Friend なりで
公開する必要があります。そして、公開したとしても xlsApp に Wb など
というメンバはありませんから、ちゃんと存在するメンバを指定しないと
いけません。

それでは。
・ツリー全体表示

【11553】Re:エクセルのイベント取得
質問  pon  - 10/3/28(日) 18:16 -

引用なし
パスワード
   ▼YU-TANG さん:
ありがとうございます

>すみませんが、意味がまったく分かりません。
>objClass1 という宣言をモジュールレベルに移動することをお勧めした
>ことと、この xlsApp 等の宣言を標準モジュールに移動されたこととの
>関連はいったい何でしょうか?

クラスモジュールの理解が足りないのと
頭が固くてみたいなでした

再度の書き込みを頂いて

標準モジュールの宣言を
Option Compare Database
Option Explicit

'Private WithEvents xlsApp  As Excel.Application
'Public bokWork       As Excel.Workbook
'Public shtSheet      As Excel.Worksheet

Dim objClass1 As Object

として、希望の操作がかないました
うう うれぴー ♪
ありがとうございました

下記動作確認してみました


Private Sub xlsApp_SheetChange(ByVal Sh As Object, ByVal Target As Excel.Range)

  MsgBox Sh.Name
  MsgBox Target.Address

End Sub

Private Sub xlsApp_WorkbookBeforeClose(ByVal Wb As Excel.Workbook, Cancel As Boolean)

  MsgBox Wb.Name
  
  Set shtSheet = Nothing
  Set bokWork = Nothing
  Set xlsApp = Nothing
  

End Sub

Private Sub xlsApp_WorkbookBeforeSave(ByVal Wb As Excel.Workbook, ByVal SaveAsUI As Boolean, Cancel As Boolean)

  MsgBox Wb.Name
  MsgBox Wb.ActiveSheet.Name

End Sub

動作的には
CreateObjectしているので
別途エクセルが先行して開いていても問題は無いと考えています
また
xlsApp_WorkbookBeforeClose

  Set shtSheet = Nothing
  Set bokWork = Nothing
  Set xlsApp = Nothing
しているので、エクセルのお化けも残らないようです
ブックの×ボタンで閉じられても大丈夫でした

Q1)
以上確認してみたのですが
他に確認すべき事項とか注意事項ありますでしょうか
アドバイスありましたらよろしくお願いいたします

Q2)
あと
ブックが閉じられる前なら上記のようにちゃんとイベントは取得できているのですが
ローカルウインドウには何も表示されていません

この状態で(ブックが開いている状態で)
イミディエイトウインドウで開いているブック名とか
取得したいと ?Class1.xlsApp.Wb.Name してみましたが
実行時エラー '424':
オブジェクトが必要です。
となってしまいます

この辺がクラスの使い方の肝のような気もしていますがよくわかりません
イミディエイトウインドウから開いているワークブック名を取得する
ことは出来ますでしょうか?


>> あわせて、上記に遭遇しないようなアプローチの方法等ありましたら
>> 紹介頂けると嬉しいです
>その KB に書いてありますが、
特に、記述先等は無いのですが
どこかのQAでみかけた、変数の値は保証されるものではない
が頭にあって
別途アプローチもあるのかなと思った次第でした

>これらの行為を (実行中には) しない、ということです。
>また実行時エラーはすべてトラップします。トラップし忘れた実行時エラー
>によって、変数が破棄されるケースが (経験則的に) あります。
詳細な解説ありがとうございました
完成後の状態であればこのような状況に遭遇しないと思います


ちょっと感激したのは
開くブックにはコードは無いので
開く時にマクロを有効にする を出さないで
ブックのイベントが取得できたことです
当然といえば当然のような気もしますが・・・・・


Q1、Q2
他コメントあれば、アドバイスよろしくお願いいたします
・ツリー全体表示

【11552】Re:エクセルのイベント取得
質問  YU-TANG  - 10/3/28(日) 15:42 -

引用なし
パスワード
   こんにちは、YU-TANG です。

> >対策として、たとえば objClass1 をモジュールレベルで宣言するように
> >してはいかがでしょうか。
>
>
> Private WithEvents xlsApp  As Excel.Application
> Public bokWork       As Excel.Workbook
> Public shtSheet      As Excel.Worksheet
> を標準のジュールに移動してみたのですが

すみませんが、意味がまったく分かりません。
objClass1 という宣言をモジュールレベルに移動することをお勧めした
ことと、この xlsApp 等の宣言を標準モジュールに移動されたこととの
関連はいったい何でしょうか?


> あわせて、上記に遭遇しないようなアプローチの方法等ありましたら
> 紹介頂けると嬉しいです

その KB に書いてありますが、

> なお、モジュールの編集、プロジェクトの構造の変更、コンパイルエラーの発生、参照設定の変更、デザインモードへの切り替え、コントロールを削除して [元に戻す] を実行するなどのタイミングで変数が破棄される場合があります。

これらの行為を (実行中には) しない、ということです。
また実行時エラーはすべてトラップします。トラップし忘れた実行時エラー
によって、変数が破棄されるケースが (経験則的に) あります。

それでは。
・ツリー全体表示

【11551】Re:エクセルのイベント取得
質問  pon  - 10/3/28(日) 15:05 -

引用なし
パスワード
   ▼YU-TANG さん:
ありがとうございます

自宅環境は
アクセスエクセル2007
vista home

>変数の有効期間を理解されていないのが原因ではないでしょうか。
あやふやな理解のままでした

-----------------------------------------------
変数の有効期間の概要

クラス モジュールでは、クラスのインスタンスが存在する限り、
値を保持します。モジュール レベルの変数は、値がリセットされるまで
メモリ リソースを消費するので、必要な場合のみ使用することを
お勧めします。
-----------------------------------------------
なんてありました

>プロシージャ内で宣言された変数の寿命はそのプロシージャの実行中だけ
>ですから、提示されたコードの objClass1 は一瞬で解放されてしまいます。
>これが原因です。

クラスモジュールのデバッグ方法に自信が無かったのですが
ツール/オプション/全般/エラートラップ/クラスモジュールで中断
にチェックしたので、デバッグは問題ないと思います

ステップ実行してみると

Class_Initialize の End Sub が終了すると 
Class_Terminateが実行されてイベントが終了してしまいます

>対策として、たとえば objClass1 をモジュールレベルで宣言するように
>してはいかがでしょうか。


Private WithEvents xlsApp  As Excel.Application
Public bokWork       As Excel.Workbook
Public shtSheet      As Excel.Worksheet
を標準のジュールに移動してみたのですが


Private WithEvents xlsApp  As Excel.Application

コンパイル エラー:
オブジェクト モジュールでのみ有効です。
となってしまいます

結果的には
Public bokWork       As Excel.Workbook
Public shtSheet      As Excel.Worksheet
を標準モジュールに

Private WithEvents xlsApp  As Excel.Application
は、クラスモジュールのままとなってしまいました


結果的に修正コードは

クラスモジュール

Option Compare Database
Option Explicit

Private WithEvents xlsApp  As Excel.Application
'Private bokWork       As Excel.Workbook
'Private shtSheet      As Excel.Worksheet


'Private WithEvents bokWork  As Excel.Workbook
'Private WithEvents shtSheet As Excel.Worksheet


Private Sub Class_Initialize()
'Public Sub Class_Initialize()


  Set xlsApp = CreateObject("Excel.Application")
  Set bokWork = xlsApp.Workbooks.Open("\\sv_hoge\fuga.xls")
  
  xlsApp.Visible = True
  
  Set shtSheet = bokWork.Worksheets(1)
  
  bokWork.Activate
  shtSheet.Activate


End Sub

Private Sub xlsApp_SheetActivate(ByVal Sh As Object)

  MsgBox Sh.Name
  'MsgBox shtSheet.Name

End Sub

Private Sub xlsApp_SheetChange(ByVal Sh As Object, ByVal Target As Excel.Range)

  MsgBox Sh.Name
  'MsgBox shtSheet.Name

End Sub

Private Sub xlsApp_WorkbookOpen(ByVal Wb As Excel.Workbook)

  MsgBox Wb.Name
  'MsgBox bokWork.Name


End Sub


標準モジュール
Option Compare Database
Option Explicit

'Private WithEvents xlsApp  As Excel.Application
Public bokWork       As Excel.Workbook
Public shtSheet      As Excel.Worksheet


Sub TG_BK_open()

  Dim objClass1 As Object
  Set objClass1 = New Class1
 
End Sub

として TG_BK_open では エラーは出ませんがやはり
ブックの操作イベントは取得できませんでした

原因は
>Private WithEvents xlsApp  As Excel.Application
>は、クラスモジュールのままとなってしまいました
にあると思うのですが

>対策として、たとえば objClass1 をモジュールレベルで宣言するように
>してはいかがでしょうか。
とするためには
どのような記述をすればよいのでしょうか


また
bokWork.Name
shtSheet.Name
のような取得がうまく出来ません
これはどのように記述すればよいのでしょうか

よろしくお願いいたします


>もっとも「kb408871」で検索すると出てくるような話もあるので、
>いかなる状況でも保証できるものではありませんが。
----------------------------------------------------
[VBA] Public 宣言された変数の有効期間
tp://support.microsoft.com/kb/408871/ja
ほとんどの場合、プロシージャ終了後も値は保持されますが、意図しないタイミングで保持されていた Public 変数の値が破棄され、使えていた変数の値が突然使えなくなる場合があります。そのため、Public 変数がアプリケーション終了時まで有効であることを期待する VBA マクロの実装は、推奨されません
----------------------------------------------------
なるほどです
勉強になりました ありがとうございました

あわせて、上記に遭遇しないようなアプローチの方法等ありましたら
紹介頂けると嬉しいです
よろしくお願いいたします
・ツリー全体表示

【11550】Re:エクセルのイベント取得
回答  YU-TANG  - 10/3/27(土) 12:18 -

引用なし
パスワード
   こんにちは、YU-TANG です。

変数の有効期間を理解されていないのが原因ではないでしょうか。
一度 VBA のヘルプで「変数の有効期間の概要」を検索して読んでみると
参考になると思います。

プロシージャ内で宣言された変数の寿命はそのプロシージャの実行中だけ
ですから、提示されたコードの objClass1 は一瞬で解放されてしまいます。
これが原因です。

対策として、たとえば objClass1 をモジュールレベルで宣言するように
してはいかがでしょうか。
もっとも「kb408871」で検索すると出てくるような話もあるので、
いかなる状況でも保証できるものではありませんが。

それでは。
・ツリー全体表示

【11549】エクセルのイベント取得
質問  pon  - 10/3/26(金) 18:20 -

引用なし
パスワード
   よろしくお願い致します
エクセル2003
WINXP

希望の動作

アクセスのデータシートフォームの
左端にあるレコードセレクタ部分のダブルクリックで
サーバー上の指定のエクセルブックを開きます

開いたブックで
 セル値変更時
 ブック保存時
 等のイベントを取得して、特定データを取得したいと思っています
 
参考HP
◆ WithEventsキーワードとは
tp://chaichan.web.infoseek.co.jp/vbtips/VBMemo2007012701.htm

Microsoft Excel 11.0 Object Library を参照設定

-----------------------------------------------------
Class1モジュール

Option Compare Database
Option Explicit

Private WithEvents xlsApp  As Excel.Application
Private bokWork       As Excel.Workbook
Private shtSheet      As Excel.Worksheet


Private Sub Class_Initialize()

  Set xlsApp = CreateObject("Excel.Application")
  Set bokWork = xlsApp.Workbooks.Open("\\sv_hoge\fuga.xls")  
  
  xlsApp.Visible = True
  
  Set shtSheet = bokWork.Worksheets(1)
  
  bokWork.Activate
  Debug.Print bokWork.Name
  
  shtSheet.Activate
  Debug.Print shtSheet.Name
  
End Sub

Private Sub Class_Terminate()

End Sub


Private Sub xlsApp_SheetChange(ByVal Sh As Object, ByVal Target As Excel.Range)

  MsgBox Sh.Name ’取得できません

End Sub

Private Sub xlsApp_WorkbookOpen(ByVal Wb As Excel.Workbook)

  MsgBox Wb.Name  ’取得出来ました

End Sub


-----------------------------------------------------
標準モジュール
Sub TG_BK_open()

  Dim objClass1 As Object
  Set objClass1 = New Class1
  
End Sub



標準モジュール TG_BK_open
を実行すると
ブックは開き
xlsApp_WorkbookOpen は取得できましたが

xlsApp_SheetChange Sh.Name は取得できませんでした


ブックの保存時
セルの変更時
を取得するにはどうすればよいでしょうか

また
ブックの上書き保存後のアクセス側の処理は別途必要でしょうか


エクセルブックのマクロブックの分離もままならない
クラスモジュールもほとんど?
のレベルです

アドバイスよろしくお願い致します
・ツリー全体表示

【11548】Re:フォーム未入力時のエラー表示について
お礼  VBA初心者  - 10/3/26(金) 16:54 -

引用なし
パスワード
   ご回答有難うございます。
 今後はご教授いただいた通り、入力フィールドのチェックに関しては
IsNull関数を使用せずにNz関数を使用致します。

大変たすかりました。

▼Nao さん:
>> 思い通りに処理が動きました。何故何も入力していない
>>のにNULLではなく、長さゼロの文字列が入力されてしまうの
>>でしょうか。
>
>データベースを直接見ているわけではないので非常に回答が
>難しいですね。
>
>これだけの情報ですと
> 既定値をセットしている
> どこかで代入している
>このくらいしかお答えのしようがないんですが・・・
>
>1つ言えることは入力フィールドのチェックに関しては
>IsNull関数を使用するよりNz関数を使用したほうが危険度が
>低いということです。
・ツリー全体表示

【11547】Re:データシート形式でのフォームについて
お礼  pon  - 10/3/26(金) 14:53 -

引用なし
パスワード
   ▼YU-TANG さん:
ありがとうございます

大変遅くなりました


>どのみち、自分がレスした時点ではイベント云々の話は出ていませんから、
>単純にデータシートの入れ替えを意図しただけです。他に事情があるなら、
>その辺を勘案して総合判断なさるのがよろしいかと思います。
申し訳ありませんでした

>いえ、別に変ではないですよ。
ありがとうございます
方向性が見えました

最終的な目的は
アプリMDB と DT.MDB の分離と
DT.MDBの共有?書き込み(排他検知で?)
みたいな物でした


今回の質問と絡めて調査しているうちに大変遅くなってしまいました
申し訳ありませんでした

MDBの分離作業の中で、
データシート形式のフォームを作成している中で
初回、リンクテーブルを設け
データシートフォームを作成後、リンクテーブル削除
を行ったのですが、この時間が長いため

動的に
>Set Forms("SBF01").Form.Recordset = rs
>みたいにしてRecordsetの入れ替えだけでデータシート形式のフォームが更新出来ないかと
>思っています
は無理かなと勝手に思って、ここでテストは中止しています

時間が取れたときに
チャレンジしてみたいと思います

わがままで申し訳ありません

ありがとうございました

今後もよろしくお願い致します
・ツリー全体表示

【11546】Re:フォーム未入力時のエラー表示について
回答  Nao  - 10/3/25(木) 11:55 -

引用なし
パスワード
   > 思い通りに処理が動きました。何故何も入力していない
>のにNULLではなく、長さゼロの文字列が入力されてしまうの
>でしょうか。

データベースを直接見ているわけではないので非常に回答が
難しいですね。

これだけの情報ですと
 既定値をセットしている
 どこかで代入している
このくらいしかお答えのしようがないんですが・・・

1つ言えることは入力フィールドのチェックに関しては
IsNull関数を使用するよりNz関数を使用したほうが危険度が
低いということです。
・ツリー全体表示

【11545】モテ遊ばれて食べられて。。
お礼  マグのリア E-MAIL  - 10/3/25(木) 7:25 -

引用なし
パスワード
   なんか色々試された挙句に、3人で同時って(笑)そんなに俺のは上手いんか!?
・ツリー全体表示

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