過去ログ

                                Page      46
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   通常モードに戻る  ┃  INDEX  ┃  ≪前へ  │  次へ≫   
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
 ▼インストール支援プログラムについて  やや 02/9/30(月) 10:27
   ┗Re:インストール支援プログラムについて  イケガミ 02/9/30(月) 10:40
      ┗Re:インストール支援プログラムについて  やや 02/9/30(月) 11:22

 ───────────────────────────────────────
 ■題名 : インストール支援プログラムについて
 ■名前 : やや
 ■日付 : 02/9/30(月) 10:27
 -------------------------------------------------------------------------
    初めまして。最近Accessの作業し始めたばかりのものです。
 あちこち探しているのですが、分からない事があるので、質問させてください。
 クエリ・レポートのインストールを支援するプログラムを作りたいのですが、
 コードで不安なところがあります。
 作業イメージはこんな感じです。

 実行ボタンが押されたら、
 0.未入力かファイルがない時はエラーとする。
 1.確認メッセージ(実行しますか?)
 2.自分のmdbから、aで始まるテーブル・クエリ・レポートを消す。
 3.入力されたmdbから、aで始まるテーブル・クエリ・レポートをインポートする。
 4.終了メッセージ
  (okの時はokのメッセージ。失敗の時はエラーメッセージ)
 キャンセルボタンが押されたら、この画面を消す。

 というようなものを作りたいのです。
 お忙しいと思いますが、ご意見いただけませんでしょうか。
 どうぞ宜しくお願います。途中までしか出来ていないのですが、下がコードです↓

 
Option Compare Database
Option Explicit

'----------------------------------------
'インストール支援プログラム実行_Click
'テーブル・クエリ・レポートを列挙して消去する
'----------------------------------------

Private Sub 実行_Click()
  MsgBox prompt:="インストール支援プログラムを実行しますか?", title:="メッセージ"
End Sub
'実行ボタンが押された時の処理_確認メッセージ

  
Public Sub QueryList()

  Dim db As DAO.Database
  Dim qdf As DAO.QueryDef
  Set db = CurrentDb
  For Each qdf In db.QueryDefs
    If Left(qdf.Name, 1) = "a" Then
      処理
      db.QueryDefs.Refresh
      
    End If
  Next qdf
  Set db = Nothing
  
End Sub
'aで始まるクエリを列挙します。


Public Sub TableList()
  Dim db As DAO.Database
  Dim doc As DAO.TableDef
  Set db = CurrentDb
  For Each doc In db.TableDef
    If Left(doc.Name, 1) = "a" Then
      処理
      db.Table.Refresh
    End If
  Next doc
  Set db = Nothing
  
End Sub
'aで始まるテーブルを列挙します。


Public Sub ReportList()
    Dim db As DAO.Database
    Dim doc As Document
    Set db = CurrentDb
    
    For Each doc In db.Containers("Reports").Documents
      If Left(doc.Name, 1) = "a" Then
        DoCmd.DeleteObject acReport, doc.Name
        db.Containers("Reports").Documents.Refresh
      End If
            
      Debug.Print doc.Name
    Next doc
    Set db = Nothing
End Sub
'aで始まるレポートを列挙します。
  

Public Sub FormList()
    Dim db As DAO.Database
    Dim doc As Document
    Set db = CurrentDb
    
    For Each doc In db.Containers("Forms").Documents
      If Left(doc.Name, 1) = "a" Then
        DoCmd.DeleteObject acForm, doc.Name
        db.Containers("Forms ").Documents.Refresh
      
      End If
      Debug.Print doc.Name
    Next doc
    Set db = Nothing
End Sub
'aで始まるフォームを列挙します。

 長々とすみません。宜しくお願いします。

 ───────────────────────────────────────  ■題名 : Re:インストール支援プログラムについて  ■名前 : イケガミ <ikegami_kumamoto@dosule.com>  ■日付 : 02/9/30(月) 10:40  -------------------------------------------------------------------------
   > 初めまして。最近Accessの作業し始めたばかりのものです。
> あちこち探しているのですが、分からない事があるので、質問させてください。
> クエリ・レポートのインストールを支援するプログラムを作りたいのですが、
> コードで不安なところがあります。
> 作業イメージはこんな感じです。

別の掲示板から引っ越してきたようですが。。

ややさんは、どこができていて、どこができていないのか分かっていますでしょうか?
それが、わからないと、作業も進まないと思いますけど。。

ひとまず、フォーム・レポートについては、完成していると思いますけど。。
あとは、実行するルーチン(コマンドボタンクリック時イベント)に、

Call ReportList()
のように組み込むだけですね。


テーブル・クエリに関しては、恐らく削除の部分を「処理」のところに
入れてやるだけでいいと思いますので、上記(ReportList)の処理を参考に
記述してください。
どのコードが何の処理をしているのか分からない場合は、ひとまず、
分からないところにカーソルを置いて、F1 を押すとヘルプが表示されますので、
それぞれ確認してください。
(なんとなく、どういった処理をしているのかを確認するだけでも
 理解度が違ってきますので。。)

 ───────────────────────────────────────  ■題名 : Re:インストール支援プログラムについて  ■名前 : やや  ■日付 : 02/9/30(月) 11:22  -------------------------------------------------------------------------
    ありがとうございました。
 なかなかどうしていいか分からない状態だったので、
 まさに聞きたい事を教えてくださっていました。
 がんばれそうです。
 ありがとうございました! 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━    通常モードに戻る  ┃  INDEX  ┃  ≪前へ  │  次へ≫    ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━                                 Page 46