Access VBA質問箱 IV

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

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


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

【7365】Re:雛形ファイルへのリッセトについて
発言  小僧  - 06/2/23(木) 11:18 -

引用なし
パスワード
   ▼kama さん:
まず初めに…。

前回の質問に対する当方の回答はいかがだったのでしょうか。
kama さんだけでなく、同じ様な悩みを持つ方が過去ログとして参照するかもしれません。
回答に対する結果報告は必ずして下さいね。


>仮にupdate を適用した場合は、以下のコードもつかえなくなるのでしょうか?
>教えていただきたいです。

>>オートメーションを用いて回避する

方法として先のコードを提示しました。
今のところは問題なく作動しています。
(当方 WinXP,Ac2002,Ex2002です)
・ツリー全体表示

【7364】レポート上での画像データの切り替えにつ...
質問  優哉  - 06/2/23(木) 10:32 -

引用なし
パスワード
   みなさん、はじめまして
Access超初心者の優哉と申します。

レポート上での画像データの切り替えについて数日前から
悪戦苦闘しており、ぜひ皆さんのお力をお借りしたく
宜しくお願いします。

テーブル上に指示データを随時読み込み、そのデータを
ラベル(レポート)出力して 現場側にその情報を元に
生産させるという仕組みを開発しております。

レポート上に 数種類のビットマップを
ある項目のデータによって切り替えて表示したいのですが、
全くやり方がわからず苦労しております。
具体的には
画像は3種類あり項目Aと項目Bのデータによって単票上の
表示させる画像を変えたいというのが要件です。

ドン保養な方法でやるのか全く見当がつかず、ヒントだけでも
お教えいただけませんでしょうか?

かなり初歩的なことかとは思いますが、Accessについては
かなり初心者でして、宜しくお願いいたします。
・ツリー全体表示

【7363】抽出(部分一致)
質問  しゅう  - 06/2/23(木) 10:29 -

引用なし
パスワード
   コンボ77に入力された値を含むものを抽出したいのですが、
完全一致は下のようなコードでできたのですが、
部分一致の検索はどのようにすればよいのでしょうか?
宜しくお願いします。

Private Sub コマンド76_Click()
  If IsNull(Me!コンボ77) = True Then
  MsgBox "抽出するエリアを入力して下さい。", vbOKOnly + vbInformation
  Me!コンボ77.SetFocus
  Exit Sub
  End If
  Me.Filter = " 設置エリア = '" & Me!コンボ77 & "'"
  Me.FilterOn = True
  If Me.Recordset.RecordCount = 0 Then
  MsgBox "抽出条件に入力されたエリアは不正です。", vbOKOnly + vbInformation
  Me!コンボ77.SetFocus
  End If
End Sub
・ツリー全体表示

【7362】Re:クエリの作成
質問  コマ  - 06/2/23(木) 10:00 -

引用なし
パスワード
   ▼小僧 さん:
ご教授ありがとう御座いました。
希望する入庫データと出庫データの1本化はできました。
ただ、表示用のクエリの項目の並び方が以下のようになります。

商品CD 日付 残高 出庫数 入庫数

フォームの表示の仕方でデータシート指定で表示をしたいのですが、
(商品CD 日付 入庫数 出庫数 残高 の順に表示したいのでが)

教えていただいたSQLから項目の順序を変えようとしたのですが
上手くできません。

もう一度、ご教授をお願いしたいのですが どうぞよろしくお願いします。
・ツリー全体表示

【7361】データーが更新されずに印刷されてしまう
質問  Dis  - 06/2/22(水) 20:52 -

引用なし
パスワード
   データシート形式のフォームから、任意のレコードを抽出したあと、データを修正して、印刷するという作業をしようとしています。

レコードの抽出は、マクロボタンで検索用フォームを呼び出してから、IDフィールドをOpenFormのWhere句で絞っています。
印刷は、同じくマクロボタンで印刷枚数を設定するフォームを呼び出して、その中のクリックイベントからOpenReportを実行して処理しています。

狙い通りのレコードを印刷することはできたのですが、いざデータを修正して印刷してみると、修正されたデータが反映されずに、修正前のデータのまま印刷されてしまいます。
試しにデータを修正したあと、次のレコードに移動して、また元のレコードに戻り、印刷をかけると更新されたデータで印刷されます。
どんなコードをどのイベントに書けばいいのか悩んでいます。
よろしくご教授ください。
・ツリー全体表示

【7360】Re:雛形ファイルへのリッセトについて
質問  kama  - 06/2/22(水) 18:30 -

引用なし
パスワード
   ▼小僧 さん:
 ありがとうございます。
>こんにちは。
>
>>「実行時エラー3061:パラメータが少なすぎます、11を指定してください」
>
>こちらについては、現在 C:\ABC.xls は A 列にしか値が入っていない状態ではないでしょうか。
>
>A 〜 L と12個の値を格納するのに、
>受け皿が狭い為にパラメータを要求されているのだと思います。
>
>>[QTemp$A1:L210]
>
>は残念ながら認識してくれない模様です。
>
>
>さて、kama さんの行いたい事はもう一つ厄介な点を抱えています。
>
>MS の技術情報より
>http://support.microsoft.com/kb/904953/#kb1
>
>2005年10月18日に発表された Office の update を適用すると、
>DAO による Excel の更新ができなくなってしまいます。
>(実行時エラー '3073' 更新可能なクエリである事が必要です。 と表示されます)
>
>この問題は現在の所、オートメーションを用いて回避する方法が一般的です。
仮にupdate を適用した場合は、以下のコードもつかえなくなるのでしょうか?
教えていただきたいです。
>
>Sub T_056改()
>'要参照 DAO x.x Object Library
>Const csXlPath As String = "C:\ABC.xls"
>Dim i As Long
>Dim xlsApp As Object
>Dim xlsWkb As Object
>Dim RS As DAO.Recordset
>
>  Set RS = CurrentDb.OpenRecordset("syu", dbOpenSnapshot)
>  Set xlsApp = CreateObject("Excel.Application")
>  Set xlsWkb = xlsApp.Workbooks.Open(csXlPath)
>  'xlsApp.Visible = True
>  With xlsWkb.Sheets("QTemp")
>    .Range("A1:L210").ClearContents
>    
>    For i = 1 To RS.Fields.Count
>      .Cells(1, i).Value = RS(i - 1).Name
>    Next
>    
>    .Range("A2").CopyFromRecordset RS
>  End With
>  
>  xlsWkb.Close True: Set xlsWkb = Nothing
>  xlsApp.Quit: Set xlsApp = Nothing
>End Sub
>
>
>クエリ名が「syu」で、Excelシート名が「QTemp」なのが気になりますが、
>適宜改良して使用してみて下さい。
・ツリー全体表示

【7359】Re:ひとつのフォームに
お礼  TB1  - 06/2/22(水) 16:57 -

引用なし
パスワード
   ありがとうございました。
考えてみれば、テーブルを2つ使おうというのが無理なんですよね。
そのためにクエリがあるって言うのに。
お騒がせしました。
ところで、クエリを使わずに、フォームに2つのテーブルから結果を反映させるなんてこと出来るんでしょうか。
やっぱりひとつのフォームには、ひとつのテーブルまたはクエリと決まっているものなんでしょうか。
初歩的な疑問ですみません。もしお時間あったら教えてください。
・ツリー全体表示

【7358】Re:他アプリケーションの操作に関して
回答  たぬき  - 06/2/22(水) 15:17 -

引用なし
パスワード
   ACCESSの機能ではありませんがハンドルを取得して
WM_CLOSEを送るとか・・・
・ツリー全体表示

【7357】Re:雛形ファイルへのリッセトについて
回答  小僧  - 06/2/22(水) 14:10 -

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

>「実行時エラー3061:パラメータが少なすぎます、11を指定してください」

こちらについては、現在 C:\ABC.xls は A 列にしか値が入っていない状態ではないでしょうか。

A 〜 L と12個の値を格納するのに、
受け皿が狭い為にパラメータを要求されているのだと思います。

>[QTemp$A1:L210]

は残念ながら認識してくれない模様です。


さて、kama さんの行いたい事はもう一つ厄介な点を抱えています。

MS の技術情報より
http://support.microsoft.com/kb/904953/#kb1

2005年10月18日に発表された Office の update を適用すると、
DAO による Excel の更新ができなくなってしまいます。
(実行時エラー '3073' 更新可能なクエリである事が必要です。 と表示されます)

この問題は現在の所、オートメーションを用いて回避する方法が一般的です。


Sub T_056改()
'要参照 DAO x.x Object Library
Const csXlPath As String = "C:\ABC.xls"
Dim i As Long
Dim xlsApp As Object
Dim xlsWkb As Object
Dim RS As DAO.Recordset

  Set RS = CurrentDb.OpenRecordset("syu", dbOpenSnapshot)
  Set xlsApp = CreateObject("Excel.Application")
  Set xlsWkb = xlsApp.Workbooks.Open(csXlPath)
  'xlsApp.Visible = True
  With xlsWkb.Sheets("QTemp")
    .Range("A1:L210").ClearContents
    
    For i = 1 To RS.Fields.Count
      .Cells(1, i).Value = RS(i - 1).Name
    Next
    
    .Range("A2").CopyFromRecordset RS
  End With
  
  xlsWkb.Close True: Set xlsWkb = Nothing
  xlsApp.Quit: Set xlsApp = Nothing
End Sub


クエリ名が「syu」で、Excelシート名が「QTemp」なのが気になりますが、
適宜改良して使用してみて下さい。
・ツリー全体表示

【7356】雛形ファイルへのリッセトについて
質問  kama  - 06/2/22(水) 12:44 -

引用なし
パスワード
   こんにちは
 ABC.XLSを雛形として、利用しています。
クエリsyuのデータをABC.XLSへ出力する前に、
A1〜L210の範囲のデータを削除するために、
以下のコードを書かくました。
実行すると、
「実行時エラー3061:パラメータが少なすぎます、11を指定してください」
11に変更したら、次回10を指定してください。
問題はどこでしょうか?
ご指導ください。よろしくお願いします。

Function T_056()
Const csXlPath As String = "C:\ABC.xls"
  Dim i As Long
  Dim vsSQL As String
For i = 1 To 12
vsSQL = vsSQL & ",F" & i & " = Null"
Next i
vsSQL = "UPDATE [QTemp$A1:L210] " _
& "IN '' [Excel 8.0;HDR=No;DATABASE=" & csXlPath & "] " _
& "SET " & Mid(vsSQL, 2) & ";"
CurrentDb.Execute vsSQL
DoCmd.TransferSpreadsheet acExport, 8, "syu", "C:\ABC.xls", True, ""
End Function
・ツリー全体表示

【7355】Re:クエリの作成
回答  小僧  - 06/2/22(水) 11:34 -

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

>以上のような条件で入出庫クエリを作成したいのでが上手く出来ません。

まず、テーブルの構成が変更可能でしたら

入出庫テーブル
ID    商品CD    日付         種別   個数
1    aaa    2006/02/01    入庫    100
2    aaa    2006/02/02    出庫     30
3    aaa    2006/02/03    入庫     10
4    aaa    2006/02/03    出庫     5

という形の方が望ましいです。変更が無理なようでしたら、

SELECT 入庫テーブル.商品CD,
    入庫テーブル.入庫日,
    '入庫' AS 種別,
    入庫テーブル.入庫数 AS 個数
FROM 入庫テーブル
UNION ALL
SELECT 出庫テーブル.商品CD,
    出庫テーブル.出庫日,
    '出庫' AS 種別,
    出庫テーブル.出庫数 AS 個数
FROM 出庫テーブル;

上記 SQL をクエリの SQL ビューに記載して、そのクエリを代用して下さい。

日付のフィールドが

>06.02.03   

となっていますが、日付/時刻型のフィールドに変更し
「2006/02/03」とした方が後々の管理が楽になると思われます。


さてここまで準備ができましたら、下記 SQL をクエリの SQL ビューに記載して
結果を確認されてみて下さい。

TRANSFORM Sum(入出庫テーブル.個数) AS 個数の合計
SELECT 入出庫テーブル.商品CD, 入出庫テーブル.日付,
Nz(DSum("個数","入出庫テーブル","種別='入庫' AND 日付 <=#" & 日付 & "#"),0) -
Nz(DSum("個数","入出庫テーブル","種別='出庫' AND 日付 <=#" & 日付 & "#"),0) AS 残高
FROM 入出庫テーブル
GROUP BY 入出庫テーブル.商品CD, 入出庫テーブル.日付,
Nz(DSum("個数","入出庫テーブル","種別='入庫' AND 日付 <=#" & 日付 & "#"),0) -
Nz(DSum("個数","入出庫テーブル","種別='出庫' AND 日付 <=#" & 日付 & "#"),0)
PIVOT 入出庫テーブル.種別;
・ツリー全体表示

【7354】Re:ファイルアクセスエラーについて
発言  小僧  - 06/2/22(水) 10:23 -

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

>何時しか"ファイルへのアクセスエラーが発生しました。

フォームやテーブルしたり、消去したりを繰り返していると
Access の中にゴミが溜まってしまう事があります。
そういったゴミの様なものがエラーの原因になっている可能性があります。

まず、MDB の最適化を行ってみて、変化の無いようでしたら
新規 MDB を作成されて、元の MDB からテーブル、フォーム等をインポートすると、
エラーが発生しなくなる事もあります。

また、Access2000には以下のような情報もありました。

MS の技術情報より
http://support.microsoft.com/default.aspx?scid=kb;ja;JP304548

※適宜改行をしましょうね
・ツリー全体表示

【7353】Re:二つのテーブルの内容をチェックするに...
発言  小僧  - 06/2/22(水) 10:14 -

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

>二つのテーブルAA、BBがあります。中のデータをチェックをしたいので、
>やり方はわかりません。

キツイ言い方になりますが、第3者には何をしたら良いのかが殆ど解りません。

まず、どのような時に

・フォーム上に配置されたコマンドボタンをクリックした時
・テーブルに値が入力される時


どの様に結果を返したいのか
・別に用意したxxxテーブルの結果というフィールドに格納
・Msgbox で表示


をはっきりさせないと、回答が付きにくいと思われますよ。
AAテーブル、BBテーブルの関連性についても情報が欲しい所ですね。
・ツリー全体表示

【7352】Re:他アプリケーションの操作に関して
発言  小僧  - 06/2/22(水) 10:06 -

引用なし
パスワード
   ▼藤田と申します。 さん:
こんにちは。

>PC上で起動されている他のアプリケーション(MS Office製品以外)を終了させる方法

AccessVBA はそのような機能はないですね。

Access からお望みのような事をされたい場合は、Windows の機能を呼び出す形になります。
「EnumProcesses」辺りでWeb検索をされてみて下さい。


実行中のプロセスでしたら以下の様なコードで取得可能です。

Sub イミディエトウィンドウに起動中プロセスを列挙()
Dim P As Object
  For Each P In GetObject("WINMGMTS:").InstancesOf("WIN32_PROCESS")
    Debug.Print P.Name,
  Next
End Sub

藤田と申します さんの環境ですとどのようなアプリケーションが
起動されているかは解りませんが、Office以外の製品は全て停止してしまって
本当に大丈夫でしょうか。

例えばウィルス対策ソフトなど常駐させておかなければならないものも多々ありますよね。

○○以外のソフトは(判断せずに)全て停止してしまう、というのは乱暴な処理だと思いますよ。
・ツリー全体表示

【7351】Re:ひとつのフォームに
回答  hatena  - 06/2/21(火) 22:06 -

引用なし
パスワード
   商品テーブル
 店番
 JANコード
 商品名
 分類コード

分類テーブル
 分類コード 主キー
 分類名

テーブルが上記のようになっているとして、

2つのテーブルからクエリを作成して、
分類コード 同士で連結して、
商品テーブルから、すべてのフィールド
分類テーブルから、分類名
を表示させるようにします。

これをフォームのレコードソースとすればいいかと
思いますが。
・ツリー全体表示

【7350】クエリの作成
質問  コマ  - 06/2/21(火) 21:25 -

引用なし
パスワード
   コマです。
お助け下さい。
今、商品の在庫問合せの画面を作成中です。
テーブルは入庫テーブルと出庫テーブルの2つあります。
商品CDをキーにして日付(入庫日と出庫日)ごとに入庫数と出庫数を並べて表示したいのです。

フォーム
商品CD  日付    入序数   出庫数   残高
aaa  06.02.01   100          100
aaa  06.02.02          30    70
aaa  06.02.03   10      5    75

入庫テーブル
商品CD  入庫日  入庫数
aaa   06.02.01  100
aaa   06.02.03   10
出庫テーブル
商品CD  出庫日  出庫数
aaa   06.02.02   30

以上のような条件で入出庫クエリを作成したいのでが上手く出来ません。
クエリでは難しい事なのですか。
よろしくご教授をお願いします。
・ツリー全体表示

【7349】四苦八苦した結果・・。
回答  nn  - 06/2/21(火) 19:25 -

引用なし
パスワード
   改ページプレビューをあやつるのは難しいと考え
1ページにおさめたい内容ごとにデータを新しいシートにコピーすることにしました。

1シートの内容を適度に縮小させ、印刷するために
FitToPagesWide プロパティを利用して設定することにしました。


小僧さんどうもありがとうございました。
・ツリー全体表示

【7348】ひとつのフォームに
質問  TB1  - 06/2/21(火) 15:24 -

引用なし
パスワード
   またまたお世話になります。
今、ひとつのフォームに2つのテーブルのデータを表示させたいと思っているのですが、そういったことは可能なのでしょうか。
データの欄が
店番
JANコード
商品名
分類コード
分類名
だったとして、分類名以外商品テーブル、分類名だけ分類テーブルからのデータを反映させたいと思っています。
共通の列があるのでクエリを作りましたが、フォームに反映させることが出来ません。イベントプロシージャでクエリ→品目分類→分類名と選ぶと
式ビルダに
=品目分類!分類名称
と表示されますが、フォームでは#NAME?となってしまいます。
何が悪いのでしょうか。教えてください。宜しくお願いします。
・ツリー全体表示

【7347】Re:抽出の際
お礼  TB1  - 06/2/21(火) 15:15 -

引用なし
パスワード
   なんだか分からないですが、なんとか抽出できました。
トラブったとき不安が残りますが。
とにかく、ありがとうございました。
・ツリー全体表示

【7346】ファイルアクセスエラーについて
質問  マーチン  - 06/2/21(火) 14:55 -

引用なし
パスワード
   1つのテーブルデータを元に、2種類のフォームを作成しました。
メインページとして新たにフォームを作成し、先の2種類のフォームを開く為のボタンを作成しました。
はじめのうちは順調にだ作していたのですが、何時しか"ファイルへのアクセスエラーが発生しました。ネットワークが切断されている可能性があります"というメッセージが表示され、まったく動作しなくなってしまいました。
私自身、アクセス初心者でどうしていいものやらわからず、困っております。
どうしたらよいでしょうか?
よろしくお願い致しますm(__)m
・ツリー全体表示

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