Access VBA質問箱 IV

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

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


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

【5683】Re:フォーム上での表示のON/OFF
お礼  ISA  - 05/7/25(月) 8:17 -

引用なし
パスワード
   ▼小僧 さん:
こんにちは。
お礼が遅くなってすいませんでした。
小僧さんの通りにしたら上手くいきました。
本当に丁寧な説明有難う御座います。^^
まだまだ勉強不足ですが、いつかは小僧さんのように
教えて上げられる立場に立会いなーと思ったり。
本当に有難う御座いました。
それでは。
・ツリー全体表示

【5682】Re:ドラッグアンドドロップ
お礼  smith  - 05/7/24(日) 19:52 -

引用なし
パスワード
   どうもありがとうございます
・ツリー全体表示

【5680】Re:ドラッグアンドドロップ
回答  YU-TANG WEB  - 05/7/24(日) 18:23 -

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

下記を参照して、出来そうだったらトライしてみてください。

http://support.microsoft.com/kb/233274/JA/
http://support.microsoft.com/kb/287642/JA/
http://www.remus.dti.ne.jp/~shenron/access/knowhow/DragDrop.html
・ツリー全体表示

【5679】ドラッグアンドドロップ
質問  smith  - 05/7/24(日) 14:47 -

引用なし
パスワード
   アクセス上のフォームでラベルなどのコントロールのドラッグアンドドロップはできるのでしょうか(デザイン上ではなく実行中に)。VBで作られたソフトでそういうのがあったのでアクセスでも可能なのかなと。可能な場合、どのActiveXコントロールを追加する必要があるのでしょうか。コードの書き方にそういうのがあるのかな。
・ツリー全体表示

【5678】Re:フォームのインポート
お礼  smith  - 05/7/24(日) 9:58 -

引用なし
パスワード
   ありがとうございます。
・ツリー全体表示

【5677】Re:フォームのインポート
回答  Gin_II  - 05/7/24(日) 9:10 -

引用なし
パスワード
   >初歩的な質問かもしれないのですけれどAccessで作ったフォームをVisual Basicに
>インポートすることはできますか。

基本的にムリだと思います。


Microsoft Access Conversion Wizard for Visual Basic .NET
http://www.microsoft.com/japan/msdn/office/access/acwguide.aspx

VB.Net向けなら、こんなのはあります。
・ツリー全体表示

【5676】フォームのインポート
質問  smith  - 05/7/23(土) 17:29 -

引用なし
パスワード
   初歩的な質問かもしれないのですけれどAccessで作ったフォームをVisual Basicに
インポートすることはできますか。逆にVisual Basicで作ったフォームをAccessにインポートすることはできますか。相互に呼び出すことはできるかもしれませんが、同じファイルとして使いたいのです。
・ツリー全体表示

【5675】Re:クエリで作成したデータをエクセルへ吐...
お礼  鈴木  - 05/7/23(土) 12:53 -

引用なし
パスワード
   小僧さん
こんにちは。

教えていただいた通り作成してみたところエクセルへ吐出しできました。
(^^:v

ただ一つ問題がありまして吐出し後のエクセルのデータサイズが
とても大きくなってしまいます。(10Mぐらい)。

吐き出しているデータサイズは5000行が二ページなので
たぶん400K程度だと思うのですが

どうやら別のシート(Listシート)がフィルタリングされていて
そのフィルタリングが影響しデータサイズが大きくなっているように
見受けられます。*定かではないですが。

そのエクセルは外注が作成したので本日お休み日なので
休み明けに聞いてみようと思っています。

とりあえず吐き出しは成功しました。
どうもありがとうございました。

又上の件で何か改善しなければいけないことができましたら
質問させていただきます。

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

【5674】Re:クエリで作成したデータをエクセルへ吐...
発言  鈴木  - 05/7/22(金) 18:42 -

引用なし
パスワード
   小僧さん
こんにちは

>クエリA、クエリB、クエリCと3つで固定であるのかや
>「A1」「C1」「E1」が規則性ありと判断して良いかが解らなかったので
>以下の様なテーブルを作ってみました。

とありますが「テーブル」をインポートした事はあるが作った事はないので
そこからやってみます。*クエリはなんとか作りましたが・・・・。

作るのはテーブル?でよいのですよね。
作ったクエリーとエクセルを混ぜたような感じでしたが。

今は会社でしたが今日はもうあがります。
作成していただいた構文を理解するのにかなり時間がかかりそうです。

又明日考えます。 

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

【5673】Re:フォーム上での表示のON/OFF
回答  小僧  - 05/7/22(金) 18:07 -

引用なし
パスワード
   ▼ISA さん:
こんにちは。
DLookupをヘルプで調べてみると、

>>DLookup(expr, domain, [criteria])

となっています。

>DLookup("値", "テーブル名", "SEQ = 'A'" and "フィールド名 = '***'" )

ですと

>>DLookup(expr, domain, [criteria] and [criteria])

になってしまいエラーがでてしまいます。
微妙な差なのですが、「and」は「"」の中に入れたままで大丈夫です。

>>DLookup("値", "テーブル名", "SEQ = 'A' and フィールド名 = '***'" )

フィールドである事を明示化する為に、下記の様な書き方の方が良いかもです。

>>DLookup("値", "テーブル名", "[SEQ] = 'A' and [フィールド名] = '***'" )
・ツリー全体表示

【5672】Re:フォーム上での表示のON/OFF
お礼  ISA  - 05/7/22(金) 17:58 -

引用なし
パスワード
   ▼小僧 さん:
早急な回答有難う御座います。
しっかりと思ったとおりの動きになりました。^^
ところで抽出条件を増やす場合は
If DLookup("値", "テーブル名", "SEQ = 'A'") = 0 Then
の部分を
If DLookup("値", "テーブル名", "SEQ = 'A'" and "フィールド名 = '***'" ) = 0 Then
のように増やせば良いのでしょうか?
一度に聞けば良かったですね、本当に申し訳ありません。
・ツリー全体表示

【5671】Re:クエリで作成したデータをエクセルへ吐...
回答  小僧  - 05/7/22(金) 17:18 -

引用なし
パスワード
   ▼鈴木 さん:
こんにちは。

「KataZai」はシート名でしたね。すみません。
「TransferSpredSheet」メソッドには残念ながらシート位置やセル位置を決めて
エクスポートする機能がないので、オートメーションと呼ばれる方法で行います。


>尚最終的に行いたいのは複数クエリから一つのシートのセルを指定(クエリAは
>セルA1〜・クエリBはセルC1〜・クエリCはセルE1〜)に吐き出す。
>このような感じです。

クエリA、クエリB、クエリCと3つで固定であるのかや
「A1」「C1」「E1」が規則性ありと判断して良いかが解らなかったので
以下の様なテーブルを作ってみました。

T_出力情報
SEQ シート名  セル番号  クエリ名
1  KataZai   A1    クエリA
2  KataZai   C1    クエリB
3  KataZai   E1    クエリC




Sub KTZJYOHO()
'要参照設定 Microsoft DAO x.x Object Library
Dim RS As DAO.Recordset
Dim Rst As DAO.Recordset
Dim xlsApp As Object
Dim xlsWkb As Object
Dim XName As String
Dim SName As String

  XName = "C:\XU\OrderSystem.xls"
  Set xlsApp = CreateObject("Excel.Application")
  Set xlsWkb = xlsApp.Workbooks.Open(XName)
  Set RS = CurrentDb.OpenRecordset("T_出力情報", dbOpenDynaset)
    
    Do Until RS.EOF
      Set Rst = CurrentDb.OpenRecordset _
                  (RS![クエリ名], dbOpenDynaset)
        SName = RS![シート名]
        With xlsWkb.Sheets(SName)
          .Range(RS![セル番号]).CopyFromRecordset Rst
        End With
      Rst.Close
      RS.MoveNext
    Loop
  Set Rst = Nothing
  RS.Close: Set RS = Nothing
  xlsWkb.Close True: Set xlsWkb = Nothing
  xlsApp.Quit: Set xlsApp = Nothing
End Sub
・ツリー全体表示

【5670】Re:クエリで作成したデータをエクセルへ吐...
発言  鈴木  - 05/7/22(金) 16:19 -

引用なし
パスワード
   小僧さん
こんにちは。

もし返事を書き途中だったらごめんなさい。
先ほど教えていただいた構文で新規シート(KTZJYOHO)を作成する事が
できました。
*色々間違いありました。 
1. 吐き出すエクセルを実行時に開いてはいけない。--->>>開いてました。
2. XName = "C:\XU:\OrderSystem:\KataZai.xls"が間違っていました。
  間の「:」は必要ありませんでした。
  又KataZaiも必要ありませんでした。

ここまでできたのですが今回行いたいのは「KataZai」という既存のシートの
A1セル(セル指定)で吐き出したいです。

サイトで該当しそうな検索文字を調べているのですがまだ解決にいたっていません。

尚最終的に行いたいのは複数クエリから一つのシートのセルを指定(クエリAは
セルA1〜・クエリBはセルC1〜・クエリCはセルE1〜)に吐き出す。
このような感じです。

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

【5669】Re:クエリで作成したデータをエクセルへ吐...
質問  鈴木  - 05/7/22(金) 15:30 -

引用なし
パスワード
   小僧さん
こんにちは。

すいません。 そんなルールがあるなんて知りませんでした。
以後気をつけます。

さて
教えていただいた通り(ちょっと変更して)書いてみました。

*************************************
Private Sub KTZJYOHO_Click()
Dim QName As String
Dim XName As String

  QName = "KTZJYOHO"
  XName = "C:\XU:\OrderSystem:\KataZai.xls"
 
  DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel9, QName, XName, True

End Sub
*************************************

上の中で「KataZai」はシートになりますが書き方はあっていますでしょうか?
シートは.xlsの前に書くのはおかしいような気がしますが・・・。
又吐き出す先のセルを指定したいのですがその指定はどこで書き込みをすれば
よいでしょうか?

実行してみましたがエラーになってしまいデバックで確認してみたところ
DoCmd.Trans・・・・の部分が黄色になってしまいました。

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

【5668】Re:クエリで作成したデータをエクセルへ吐...
発言  小僧  - 05/7/22(金) 14:48 -

引用なし
パスワード
   ▼鈴木 さん:
こんにちは。

>ボタン一つで書き込みたい(上書き可)のですが

Access のクエリにはボタンが配置できないので、
フォームにコマンドボタンを配置してあげる必要があります。

マクロでも処理できますが、VBAの掲示板なのでVBAで行う事とします。

コマンドボタンを仮に「出力」という名前として、クリック時のイベントに

Private Sub 出力_Click()
Dim QName As String
Dim XName As String

  QName = "クエリ名"
  XName = "C:\KataZai.xls"
  
  DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel9, QName, XName, True

End Sub

とすればお望みのような動作になるかと思われます。

※こちらの掲示板ではマルチポスト(複数の掲示板にまったく同じ話題を
投稿すること)容認されてますが、他の掲示板には禁止となっている所も
もちろんあります。気をつけましょう。
・ツリー全体表示

【5667】Re:フォーム上での表示のON/OFF
回答  小僧  - 05/7/22(金) 14:44 -

引用なし
パスワード
   ▼ISA さん:
こんにちは。

※フィールド名に「No」のような名前をつけると「Yes/No」の「No」と
 間違えて誤作動する場合がありますので、名前を変えた方が無難だと思われます。
 当方が提示させて頂く回答は「SEQ」に変えてあります。

イメージの名前が「A」〜「E」で固定であれば、

Private Sub Form_Load()

  If DLookup("値", "テーブル名", "SEQ = 'A'") = 0 Then
    Me.イメージA.Visible = False
  Else
    Me.イメージA.Visible = True
  End If
  
  If DLookup("値", "テーブル名", "SEQ = 'B'") = 0 Then
  ・
  ・
End Sub

の様に繰り返し処理をすれば良いと思われます。
配列を使うと

Private Sub Form_Load()
Dim I As Long
  For I = 65 To 69
    If DLookup("値", "テーブル名", "SEQ = '" & Chr(I) & "'") = 0 Then
      Me.Controls("イメージ" & Chr(I)).Visible = False
    Else
      Me.Controls("イメージ" & Chr(I)).Visible = True
    End If
  Next
End Sub

こんな感じになると思われます。

※エラーチェックの処理は特につけていません。
・ツリー全体表示

【5665】フォーム上での表示のON/OFF
質問  ISA  - 05/7/22(金) 12:02 -

引用なし
パスワード
   No 値
A  0
B  1
C  0
D  1
E  1
というようなテーブルを作り、このテーブルをレコードソースとして
フォームを作ったとします。
 フォーム上にはイメージA〜Eという名前の5つの画像が貼られており、
テーブル上のNo.Aが1の場合はイメージAを表示(0の場合は非表示)、
同様にNo.Bの値よりイメージBの表示/非表示...というようにテーブル
の値から表示/非表示を切り替えたいと考えております。
 色々と過去のログを見てみたのですが、よく分かりませんでした。
 どなたかお知恵を頂けないでしょうか?
 宜しくお願い致します。
※ちなみにACCESS97を使用
・ツリー全体表示

【5664】クエリで作成したデータをエクセルへ吐き...
質問  鈴木  - 05/7/22(金) 11:46 -

引用なし
パスワード
   皆様 こんにちは。
ある企業でシステム担当をしています 鈴木と申します。

私の力だけでは解決しそうもないのでこの場を借りて質問させていただきます。

オラクルからテーブルにリンクさせたデータ(資料)をクエリで加工し
抜き出したい対象項目+検索条件(DELFLG 0=必ず表示させるという意味)をクエリ上に出しました。

その後その対象項目をエクセルのシート(KataZai)のA1セル(既存)に
ボタン一つで書き込みたい(上書き可)のですが

どうすればよいでしょうか? vbもつかわなければだめかと思いますが
アクセスではどこまでできるでしょうか?


アクセスは2003 OSはXPになります。

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

【5663】Re:ACCESSのデータのWord差込
お礼  たけの  - 05/7/22(金) 11:06 -

引用なし
パスワード
   ▼小僧 さん:
おはようございます。
早速、小僧さんに教えていただいた
コードをパクッてテストをしてみました。
昨日、一日中「う〜う〜」うなって考え込んでいたのが
馬鹿らしく思えるくらい簡単にワードが起動でき、
データを差し込むことができることがわかりました。
ありがとうございます!

あとは、Wordの「マクロを記録」というのを使ってみて
試行錯誤したいと思います。
本当にありがとうございました!
大変助かりました!


>▼たけの さん:
>おはようございます。
>当方、WordVBA の知識がないのでこのへんまでしかできませんが…。
>
>Sub ワードを起動して()
>Dim wdApp As New Word.Application
>Dim wdDoc As Word.Document
>Dim wdName As String
>  wdName = "C:\Test.DOC"
>  
>  wdApp.Visible = True
>  Set wdDoc = wdApp.Documents.Open(wdName)
>    wdDoc.Range(1, 1).Text = "差込"
> 
>  Set wdDoc = Nothing
>  Set wdApp = Nothing
>End Sub
>
>「wdDoc.Range(1, 1).Text = "差込"」の辺りの操作はWordVBAを使う事になります。
>たけのさんが希望する位置に指定の文字を挿入されたい場合は
>Wordの「マクロを記録」の機能でVBAのコードを分析されてみてはいかがでしょうか。
・ツリー全体表示

【5662】Re:検索フォームについて
発言  小僧  - 05/7/22(金) 9:57 -

引用なし
パスワード
   ▼ゆう さん:
こんにちは。

メインフォームの役割は?
連結・非連結どちらを使う?
単票・帳票フォームは?
どのようなコントロール(テキストボックスやコンボボックス)を配置する?
etc…

がご提示されていないので、当方にはなかなかイメージが沸いてきません。


例えば…
連結フォームを利用して、
フォームヘッダーに
  検索_書籍番号(テキストボックス)
  検索_書籍名(テキストボックス)
  検索_グループ(コンボボックス)
  検索ボタン(コマンドボタン)

を配置して、検索ボタンを押すとフィルタが掛かるようにすれば
サブフォームを使うことなく検索用のフォームが作れると思うのですがいかがでしょうか。
・ツリー全体表示

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