Access VBA質問箱 IV

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

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


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

【4438】Re:Excelへエクスポートする時にError番号...
回答  かろちん  - 05/2/20(日) 11:38 -

引用なし
パスワード
   >でも、エラーが出ていないのですから、On Error GoTo ではなく
>On Error Resume Next で済ますことにしました。

 本当にこれでいいの?
 これでは、エラーが起こっても次のステップ行を実行するという
 意味ですよ。
 エラーが起こっても分からないってことですよ。
 それでいいならいいですが。
・ツリー全体表示

【4437】Re:Excelへエクスポートする時にError番号...
お礼  EBI E-MAIL  - 05/2/20(日) 10:27 -

引用なし
パスワード
   ありがとうございました。
Exit Sub だけでよかったのですね。
でも、エラーが出ていないのですから、On Error GoTo ではなく
On Error Resume Next で済ますことにしました。
・ツリー全体表示

【4436】Re:Excelへエクスポートする時にError番号...
回答  かろちん  - 05/2/19(土) 21:22 -

引用なし
パスワード
   >Excelへエクスポートすることになり、以下のようにしてエクセルへは正常に出力されますが、
>エラーのメッセージボックスが出ます。内容は・・・
>
>Error番号:0
>Error内容:  ←空白です。
>
>エラー番号0とは何でしょうか。どう解決すればいいのでしょうか?

エラーが出ていないから、エラー番号は0です。
エラーが出ていないから、エラー内容は空白です。

プログラムを良く見てみましょう。
エラー処理の所は、正常に処理されても、エラーになっても通ります。

エラー処理はエラーの場合にのみ通す必要があります。


   〜 上部省略 〜
>'既存のデータを消去
>xlWs.Range("A4.N9999").ClearContents
>'
>'セルを指定してレコードセットを張り付け
>xlWs.Range("A4").CopyFromRecordset rs
>'
ここに
Exit Sub
が必要です。
>エラー:
>
>  MsgBox "Error番号:" & Err.Number & vbNewLine & _
>      "Error内容:" & Err.Description, 16, "管理者"
>  End
>  
>End Sub
・ツリー全体表示

【4435】Excelへエクスポートする時にError番号0と...
質問  EBI E-MAIL  - 05/2/19(土) 18:30 -

引用なし
パスワード
   久しぶりに質問させてください。
Excelへエクスポートすることになり、以下のようにしてエクセルへは正常に出力されますが、
エラーのメッセージボックスが出ます。内容は・・・

Error番号:0
Error内容:  ←空白です。

エラー番号0とは何でしょうか。どう解決すればいいのでしょうか?

Access2000
Excel2000
WinXP
--------------------------------------------------------------------------

Private Sub cmd9_Click()
On Error GoTo エラー

Dim rs As Object
Dim xlApp As Object
Dim xlWb As Object
Dim xlWs As Object
Dim xlWt As Object
Dim xlWu As Object
'
'レコードセットを開く
Set rs = CurrentDb.OpenRecordset("tbl_顧客")
'
'オブジェクトの作成
Set xlApp = CreateObject("Excel.Application")
xlApp.Visible = True
'
'ファイルを開く
Set xlWb = xlApp.Workbooks.Open("F:\テスト.xls")
'
'シートをセット
Set xlWs = xlWb.Worksheets("管理用")
'
'既存のデータを消去
xlWs.Range("A4.N9999").ClearContents
'
'セルを指定してレコードセットを張り付け
xlWs.Range("A4").CopyFromRecordset rs
'
エラー:

  MsgBox "Error番号:" & Err.Number & vbNewLine & _
      "Error内容:" & Err.Description, 16, "管理者"
  End
  
End Sub
--------------------------------------------------------------------------
・ツリー全体表示

【4434】Re:任意のExcelファイルを開く方法について
お礼  gangan  - 05/2/19(土) 10:45 -

引用なし
パスワード
   ▼クロ さん:
>stAppName = "EXCEL.EXE \\server0\壱\弐\" & Me.テキストボックス名 & _
>       "\" & Me.テキストボックス名 & "def.xls"
>としてはどうでしょうか?

クロ さん

出来ました。ありがとうございました。m(_ _)m
・ツリー全体表示

【4433】Re:任意のExcelファイルを開く方法について
回答  クロ  - 05/2/18(金) 16:01 -

引用なし
パスワード
   stAppName = "EXCEL.EXE \\server0\壱\弐\" & Me.テキストボックス名 & _
       "\" & Me.テキストボックス名 & "def.xls"
としてはどうでしょうか?
・ツリー全体表示

【4432】任意のExcelファイルを開く方法について
質問  gangan  - 05/2/18(金) 15:30 -

引用なし
パスワード
   はじめまして。

エクセルファイルを開くときに
以下ので「ABCdef.xls」は開きます。
そこで、弐フォルダの中に
「XYZフォルダ」も有って、その中に「XYZdef.xls」が有るとします。
フォーム上のテキスト欄に「XYZ」と入力することによって
「XYZdef.xls」が開くようにするにはどうすればよいでしょうか?


Private Sub コマンド3_Click()
On Error GoTo Err_コマンド3_Click

  Dim stAppName As String

  stAppName = "EXCEL.EXE \\server0\壱\弐\ABC\ABCdef.xls"
  Call Shell(stAppName, 1)

Exit_コマンド3_Click:
  Exit Sub

Err_コマンド3_Click:
  MsgBox Err.Description
  Resume Exit_コマンド3_Click
  
End Sub
・ツリー全体表示

【4431】Re:必須項目に対する入力チェックの仕組み
回答  クロ  - 05/2/18(金) 14:40 -

引用なし
パスワード
   If IsNull(Me.項目1) Then
 MsgBox "項目1が未入力です。"
 Me.項目1.SetFocus
ElseIf IsNull(Me.項目2) Then
 MsgBox "項目2が未入力です。"
 Me.項目2.SetFocus
ElseIf IsNull(Me.項目3) Then
 MsgBox "項目3が未入力です。"
 Me.項目3.SetFocus
ElseIf IsNull(Me.項目4) Then
 MsgBox "項目4が未入力です。"
 Me.項目4.SetFocus
ElseIf IsNull(Me.項目5) Then
 MsgBox "項目5が未入力です。"
 Me.項目5.SetFocus
Else
 登録の処理
End If
こんな感じでしょうか?
・ツリー全体表示

【4430】必須項目に対する入力チェックの仕組み
質問  牛乳  - 05/2/18(金) 13:36 -

引用なし
パスワード
   必須項目に対する入力チェックの仕組みがうまく書けません。
どなたかにご教授いただきたく、よろしくお願いします。
仕様は以下の通りです。

フォームからデータを入力後に登録ボタンを押す。
入力必須項目に対して入力チェックをする。(必須項目は複数あり)
Nullの場合には、エラーメッセージを表示して該当フィールドにフォーカスを戻し、再入力させる。
全て入力できている場合にはデータ登録処理をする。

(処理の流れ)

 登録モジュール
  |
   −−−入力チェックモジュール   
        処理A:必須項目(項目1・項目2・項目3・項目4・項目5)が不完全なものは完全になるまで入力する 
             ・項目1〜5を全てまとめてチェックし、不備のある項目のみをメッセージ表示。
             ・表示された項目にカーソルを移動する。
             ・登録ボタンで入力チェックモジュールを再度行う。

        処理B:必須項目に全て入力済なら登録モジュールへ戻り、処理を継続する。
                           |
  |−−−−−−−−−−−−−−−−−
  |
 登録モジュールの続き
・ツリー全体表示

【4429】Re:既存のExcelブックから新規ブックにシ...
お礼  りんどう  - 05/2/17(木) 12:20 -

引用なし
パスワード
   てっちゃんさんへ

ありがとうございました。
うまくできました。

助かりました。
・ツリー全体表示

【4428】Re:タブコントロールの色を変えたい
発言  てっちゃん  - 05/2/17(木) 9:09 -

引用なし
パスワード
   ▼鳥取砂丘 さん:

他のサイトの掲示板なのですが(良いのかな?)
http://www.penhagi.com/access/ota2002/4685.htm

参考になるかもしれません
・ツリー全体表示

【4427】タブコントロールの色を変えたい
質問  鳥取砂丘  - 05/2/16(水) 21:12 -

引用なし
パスワード
   フォーム上に次のものを貼り付けてあります。
タブコントロール: tab1
チェックボックス: check1
テキストボックス: text1

タブコントロールは普通は灰色ですが、チェックボックスにチェックを付けたとき、タブコントロールの色を黒にし、はずすとまた灰色に戻るようにしたいのですが、どのようにすればいいのか教えてください。
・ツリー全体表示

【4426】Re:既存のExcelブックから新規ブックにシ...
回答  てっちゃん  - 05/2/16(水) 15:18 -

引用なし
パスワード
   ▼りんどう さん:

こんなコードで、いかがでしょう
'--------------------------------------------------------------
Private Sub sub_XLS_copy()
  Dim myXLS As Object
  Const myPATH As String = "C:\Documents and Settings\管理者\デスクトップ\"
  
  Set myXLS = GetObject(myPATH & "ブックA.xls")
  myXLS.Application.Visible = True
  myXLS.Parent.Windows("ブックA.xls").Visible = True
  myXLS.Application.WORKSHEETS("シート1").Copy
  myXLS.Parent.ActiveWorkbook.SaveAs _
            FileName:=myPATH & "ブックB.xls", _
            FileFormat:=-4143
  myXLS.Close SaveChanges:=False
  
  Set myXLS = Nothing
End Sub
'--------------------------------------------------------------

> 「ブックB」を新規作成
なので、「ブックB」は存在しないことが前提となっています。

また、「ブックA」は、myXLS.Closeにて閉じていますが、
「ブックB」は閉じていません。

適宜変更して使用してください。

「GetObject」のVBAのヘルプを参照すると良いでしょう。
・ツリー全体表示

【4425】既存のExcelブックから新規ブックにシート...
質問  りんどう  - 05/2/15(火) 17:25 -

引用なし
パスワード
   既存のExcelファイル「ブックA」があり、「シート1」と「シート2」があります。
Accessのフォームモジュール内で「ブックB」を新規作成した上で、「ブックA」の
「シート1」を「ブックB」に移動(又はコピー)する方法を教えていただきたい
のですが。
・ツリー全体表示

【4424】Re:検索フォーム内でのフォーカス(カーソ...
お礼  mako  - 05/2/15(火) 11:51 -

引用なし
パスワード
   かろちんさんへ
こんばんは!!

ありがとうございました、できましたぁ!!(o^o^o)
すごくすごく嬉しいです。
>
>  DoCmd.GoToRecord acDataForm, Me.Name, acFirst
>  DoCmd.GoToRecord acDataForm, Me.Name, acGoTo, 1
>
>これで可能かとおもいますが。

はいっ。このどちらも私が思っていた通りにうごきました。
途中で何回も挫折しそうになりましたが、私の超初心者で
的外れな質問に、毎日必ずお返事を下さったおかげで
最後までできました。
いつも遅い時間に、貴重な時間を使っていただいて、
感謝しています。
本当に本当にありがとうございました。
・ツリー全体表示

【4423】Re:文字列同士をくっつける関数について
回答  かろちん  - 05/2/15(火) 0:58 -

引用なし
パスワード
   文字の結合は & で可能かと思います。
フィールド名が書いてないので仮にテーブルA,Bとも同じ
フィールド名と仮定し、最初のフィールドがF1、次の
フィールドがF2とします。

前提条件として、テーブルA、テーブルBともF1フィールド
には、重複したデータは存在しないものとします。

クエリーAでテーブルA,テーブルBをF1で結合し、テーブルA
のF2とテーブルBのF2を文字結合すればよいと思います。

テーブルA.F2 & テーブル
・ツリー全体表示

【4422】Re:フォーカスの移動
回答  かろちん  - 05/2/15(火) 0:51 -

引用なし
パスワード
   >NULLの条件はフォーカス喪失時に関数へ飛ばしてチェックしています。
>DoCmd.CancelEventの後、SetFocusでうまくいくような気がするのですが...

上記の方法でいけると思います。
実際にやってみましたがうまくいきました。
しかし、複数行表示されている状態で、例えば現在のカーソル位置が
3行目だとしましょう。その3行目のコンボがNULLだとすると、先頭
行には行きません。

先頭行に飛ばす場合は、やはり現在のカレントレコードを先頭にする
必要があると思います。
・ツリー全体表示

【4421】Re:検索フォーム内でのフォーカス(カーソ...
回答  かろちん  - 05/2/15(火) 0:47 -

引用なし
パスワード
   >一番古いデータが表示された後、空白にならないで一番新しい(はじめの)
>データを表示するようにしたいです。
>GotoRecord,,の後に何と書けばいいのでしょうか?

  DoCmd.GoToRecord acDataForm, Me.Name, acFirst

これか

  DoCmd.GoToRecord acDataForm, Me.Name, acGoTo, 1

これで可能かとおもいますが。
・ツリー全体表示

【4420】Re:検索フォーム内でのフォーカス(カーソ...
質問  mako  - 05/2/14(月) 17:08 -

引用なし
パスワード
   かろちんさんへ。こんにちは。

GotoRecordがうまくできません。
原因は私がGotoRecordのことをわかっていないからです。
HELPの理解も、どうもちゃんとできていない感じです。

本当にすみませんが、どうかもう一度質問しなおさせてください。
本などを読んでも、ひとつ前や次や新しいレコードに移動する
方法は書いてあるのですが、元のレコードに戻す方法がわかりません。

enterキーは検索用のテキストボックスに、製品コードを入力した後に押し、
画面にデータが表示されます。
その後もキーを押すたびにひとつ前の古いデータが画面に表示されるという
感じです。
一番古いデータが表示された後は、フォーカス(カーソル?)が製品コードの
テキストボックスのところに移り画面は空白になります。
一番古いデータが表示された後、空白にならないで一番新しい(はじめの)
データを表示するようにしたいです。
GotoRecord,,の後に何と書けばいいのでしょうか?
すみません。どうかお願いいたします。
・ツリー全体表示

【4419】Re:ファイル共有に関する質問
お礼  た〜に  - 05/2/14(月) 16:08 -

引用なし
パスワード
   クロさん
無事に解決できました。有難うございました。
・ツリー全体表示

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