Access VBA質問箱 IV

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

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


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

【5033】Re:エクセルへのエクスポートについて
回答  Gin_II  - 05/5/17(火) 20:28 -

引用なし
パスワード
   その元となっているテーブルで、ルックアップの設定とかをしているのでは?
その場合、値リストとして設定しているのか、別テーブルを参照させているのか。
などの情報も必要です。
・ツリー全体表示

【5032】エクセルへのエクスポートに関して
質問    - 05/5/17(火) 17:42 -

引用なし
パスワード
   クエリの結果をエクセルファイルにエクスポートしているのですが、
その際、フィールド[氏名]のデータが数値になります。
数値ではなく、文字としてエクスポートする方法はあるのでしょうか?
VBAでは、単に

DoCmd.TransferSpreadsheet acExport, ,"Q_aaa","c:\Q_dat.xls",True

とかいてます。
・ツリー全体表示

【5031】Re:コンボボックスの自動表示について
回答  クロ  - 05/5/17(火) 14:44 -

引用なし
パスワード
   書かれたコードは問題ないと思います。
VBエディタを開いて、メニュー>ツール>参照設定で
参照設定を開いて「参照不可」となっているものはありませんか?

あるいはデータベースが損傷しているかもしれないので
メニュー>ツール>データベースユーティリティ>最適化/修復を
行ってみては如何でしょうか?
・ツリー全体表示

【5030】コンボボックスの自動表示について
質問  バカボン  - 05/5/17(火) 10:13 -

引用なし
パスワード
   こんにちは!AccessVBA 1週間目の初心者です。よろしくお願いします。
職場でトラブル対応時の記録を残そうとデータ入力ソフト…もどきのものを
作ってみました。
フォームの入力項目にカーソル(?)がきたときに
自動的にコンボボックスを表示されるようにしたく

Private Sub コンボ36_Enter()

 Me.コンボ36.Dropdown
 
End Sub
のようなイベント プロシージャを『フォーカス取得時』にセットしたのですが
『イベントプロパティに指定した式でエラーが発生しました…』などというメッセージが出てしまいます。
無知ゆえ原因もわからず、過去ログも拝見しましたがよくわからず困っています。
お手数をおかけしますがどなたか解決方法をお願いします。
・ツリー全体表示

【5029】Re:日にちの条件により処理を行う
回答  Gin_II  - 05/5/17(火) 8:19 -

引用なし
パスワード
   >フォーム上のコマンドボタンをクリックしたら
>テーブルのフィールドに記載されている日付を参照し、

このフォームと、テーブルの関係は?
このフォームのレコードソースなのか、それともまったく別なのか。

あと、どのレコードの日付なのかを特定する必要もあります。

連結していないテーブルであれば、DLookup 関数あたりを使ってみてください。
・ツリー全体表示

【5028】日にちの条件により処理を行う
質問  SWEET SAUCE  - 05/5/17(火) 0:14 -

引用なし
パスワード
   初めまして。
日々勉強中ですがまだまだわからない事が多く道は険しいです。
今、ぶちあたっている壁は

フォーム上のコマンドボタンをクリックしたら
テーブルのフィールドに記載されている日付を参照し、
その日付が当月の10日より以前ならAという処理を、
11日以降ならBという処理を行う場合にどう記述していいかがわかりません。

Dim hiduke As variant
hiduke = [テーブル名]![フィールド名]

If hiduke<=10 Then
 Aという処理
Else
 Bという処理
End If

明らかに変ですがどういう関数を使えばスマートにことが進むのでしょうか。
どうぞアドバイスお願いします。
・ツリー全体表示

【5027】Re:プロパティウィンドウのフォント
回答  Gin_II  - 05/5/17(火) 0:06 -

引用なし
パスワード
   >VBA Editor のプロパティウィンドウやプロジェクトエクスプローラのフォントが
>明朝体のような感じで読みにくいのです。

こちらでしょうか?

Microsoft Office 2000 Visual Basic Editor の表示の修正プログラム
http://www.microsoft.com/downloads/details.aspx?FamilyID=781FA2E1-205A-4310-9BE8-113A473F98C6&displaylang=ja
・ツリー全体表示

【5026】Re:書式の設定について
お礼  うさこ  - 05/5/16(月) 23:38 -

引用なし
パスワード
   ▼小僧 さん:

お答え、ありがとうございます!

>クエリビルダーを起動後、フィールドに
>
>IIf(IsNull([フィールド名]),"","OK")
>
この方法でやったら、ばっちりできました。
いろいろ悩んで試行錯誤してたので、お礼が遅くなりましてごめんなさい。

本当にありがとうございましたm(_ _)m。
またよろしくお願いします!
・ツリー全体表示

【5025】プロパティウィンドウのフォント
質問  しん  - 05/5/16(月) 22:37 -

引用なし
パスワード
   VBA Editor のプロパティウィンドウやプロジェクトエクスプローラのフォントが明朝体のような感じで読みにくいのです。フォントを変更する方法があれば教えてください。
・ツリー全体表示

【5024】Re:書式の設定について
回答  小僧  - 05/5/16(月) 10:07 -

引用なし
パスワード
   ▼うさこ さん:
おはようございます。

当方も書式設定を色々いじってみたのですが、テキスト型の時に「OK」と書式を
設定する事ができませんでした。

そこで、フィールドに以下の式を入れてみては如何でしょうか?

クエリビルダーを起動後、フィールドに

IIf(IsNull([フィールド名]),"","OK")

詳しくは「IIf」をヘルプでご覧になってみてください。
・ツリー全体表示

【5023】Re:deleteが使えません。
回答  小僧  - 05/5/16(月) 9:42 -

引用なし
パスワード
   ▼MAKO さん:
おはようございます。
当方XP環境でコードを試してみましたが、「AppName」が宣言されていれば
特に問題のないコードであるように思われます。

OSを入れ替えたことにより、参照設定が「参照不可」になっていると
動作に不具合が生じることがありますので、まだ行っていなければ
是非確認を行ってみてください。
・ツリー全体表示

【5022】書式の設定について
質問  うさこ  - 05/5/15(日) 22:14 -

引用なし
パスワード
   いつもお世話になってます。m(_ _)m

テーブルのデータをリストボックスに表示させる時に、
データがNULLじゃない時は OK を、NULLの時は 何も表示させないように
したいのですが、うまくできません。
下記の通りにやってみました。
リストボックスのプロパティの値集合タイプ = テーブル/クエリ
              値集合ソース = SQLステートメント:クエリビルダ
                       を起動して、テーブルを選択して、
                       フィールドのプロパティの書式を
                         "OK";""
としました。
すると、一度保存して再度プロパティの書式を見てみると、
書いたものが消えていて、当然表示もされません。
書式の書き方が間違っているのか、リストボックスに表示するときに書式は
設定できないのかもわかりません。

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

【5021】deleteが使えません。
質問  MAKO  - 05/5/15(日) 20:29 -

引用なし
パスワード
   [本文なし]
WIN98・Access2000で下記のコードで何の問題なく使用していましたが、OS XP・Access2000のマシーンだと反応なしになり、強制終了しなければなりません。コードになにか原因があるのでしょうか?
しかも、オプション設定でエラーがでているのか、Deleteでエラーがでているのかいまいちわかりません。何が原因なのかお教えして頂けたら幸いです。

Option Compare Database

Dim strBuftekiyo As String
Private Option_CHK As Boolean

Private Sub Form_Delete(Cancel As Integer)
If MsgBox("削除?", 305, AppName) = vbOK Then
If GetOption("Confirm Record Changes") = 0 Then
'[オプション]の「レコードの変更」の現在の値をチェックします。
SetOption "Confirm Record Changes", -1
'一時的にチェックします。
Option_CHK = True
End If
Else
Cancel = True
End If
End Sub

ちなみにメッセージBOXは表示されません。助けてください。
・ツリー全体表示

【5020】Re:既存のExcelファイルにエクスポートす...
お礼  にしもり  - 05/5/13(金) 14:06 -

引用なし
パスワード
   ▼小僧 さん:
いまAccessとExcelの両方を使っております。
ご教示いただいたとおりにやったところできました。
結果のみを使わせていただき申し訳なく思っております。
自分で精進したいと思っています。
ありがとうございました。
・ツリー全体表示

【5019】Re:既存のExcelファイルにエクスポートす...
回答  小僧  - 05/5/13(金) 13:47 -

引用なし
パスワード
   ▼にしもり さん:
こんにちは。Accessの方はお久しぶりですね。

[#4844]にて
>「TransferSpreadsheet」のヘルプには「acExport」の際のRange指定は
>記載されていないので正しい使い方ではないと思いますが、
>当方の環境では作動しております。(WindowsXP/Access2002/Excel2002)

と書きましたが、やはり正しい使い方でないのか弊害がでてしまいました。
Excel の CopyFromRecordset というメソッドを使用してコードを書き直しました。

Sub TEST2()
Dim FSO As Object
Dim xlsApp As New Excel.Application
Dim xlsWkb As Excel.Workbook
Dim xlsSht As Excel.Worksheet
Dim MyFile As Variant
Dim Cnt As Long
'
'TBLのデータをレコードセットに記録
'-----------------------------------------------------------
  'DAOの場合
  Dim RS As DAO.Recordset
  Set RS = CurrentDb.OpenRecordset("aa")
  
  'ADOの場合
  'Dim RS As New ADODB.Recordset
  'RS.Open "SELECT * FROM aa", CurrentProject.Connection
'-----------------------------------------------------------

'出力ファイルの指定
  MyFile = "C:\新しいフォルダ\回数表.xls"
  MyFile = "C:\Documents and Settings\x0007546.MOS\デスクトップ\サンプル\aaa.xls"

'存在チェック
  Set FSO = CreateObject("Scripting.FileSystemObject")
    If Not (FSO.FileExists(MyFile)) Then
      DoCmd.TransferSpreadsheet acExport, _
      acSpreadsheetTypeExcel9, "aa", MyFile, True
    Else

'出力先ファイルにシートを追加
      Set xlsWkb = xlsApp.Workbooks.Open(MyFile)
      Cnt = xlsWkb.Sheets.Count
      xlsWkb.Sheets.Add after:=xlsApp.Worksheets(Cnt)
      Set xlsSht = xlsWkb.ActiveSheet
      xlsSht.name = "aa" & Cnt
        For Cnt = 1 To RS.Fields.Count
          xlsSht.Cells(1, Cnt).Value = RS.Fields(Cnt - 1).name
        Next
      xlsSht.Range("A2").CopyFromRecordset RS
      xlsWkb.Close True: Set xlsWkb = Nothing
      xlsApp.Quit: Set xlsApp = Nothing
    End If
  RS.Close
  Set RS = Nothing
End Sub

参照設定を開いて、
>> Microsoft DAO x.x Object Library
にチェックがついていればDAOで、

>> Microsoft ActiveX Data Objects x.x Library
にチェックがついていればADOで、

両方ともチェックがあればお好きな方で試してみてください。
・ツリー全体表示

【5018】Re:既存のExcelファイルにエクスポートす...
質問  にしもり  - 05/5/13(金) 12:47 -

引用なし
パスワード
   ▼小僧 さん:
何回も似た質問をしてもうしわけございませんでした。
また、多くの方にレスいただき、どうもありがとうございます。
小僧さんのを使わせていただいております。
で、下のプログラムですが、タイトルは1行目に出るのですが、
値が3行目から出てしまいます。
値を2行目から出すためにどう改良すればよいかわかりません。
どうかご教示ください。

>Sub TEST()
>Dim FSO As Object
>Dim xlsApp As New Excel.Application
>Dim xlsWkb As New Excel.Workbook
>Dim MyFile As Variant
>Dim Cnt As Long
>
>'出力ファイルの指定
>  MyFile = "C:\新しいフォルダ\回数表.xls"
>
>'存在チェック
>  Set FSO = CreateObject("Scripting.FileSystemObject")
>    If Not (FSO.FileExists(MyFile)) Then
>      DoCmd.TransferSpreadsheet acExport, _
>      acSpreadsheetTypeExcel9, "aa", MyFile, True
>    Else
>
>'出力先ファイルにシートを追加
>      Set xlsWkb = xlsApp.Workbooks.Open(MyFile)
>      Cnt = xlsWkb.Sheets.Count
>      xlsWkb.Sheets.Add after:=xlsApp.Worksheets(Cnt)
>      xlsWkb.ActiveSheet.Name = "aa" & Cnt
>      xlsWkb.Save
>      xlsWkb.Close: Set xlsWkb = Nothing
>      xlsApp.Quit: Set xlsApp = Nothing
>    
>    DoCmd.TransferSpreadsheet acExport, _
>    acSpreadsheetTypeExcel9, "aa", MyFile, True, "aa" & Cnt & "!"
>    End If
>End Sub
・ツリー全体表示

【5017】Re:クエリ内の合計をさせるには
お礼  sakaiII  - 05/5/13(金) 9:11 -

引用なし
パスワード
   ありがとうございました。
教えていただいた「SQLのユニオン」の発想を利用して、
いままで溜まっていた難点をすべて解決できました!
・ツリー全体表示

【5016】Re:リストからの別のフォームへの移動
回答  小僧  - 05/5/12(木) 16:43 -

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

F_フォームA
  選択リスト(リストボックス)
    複数選択 → 標準 または 拡張

  実行ボタン(コマンドボタン)

F_フォームB
  結果ボックス(テキストボックス)

が存在すると仮定します。

Private Sub 実行ボタン_Click()
Dim MyList As ListBox
Dim MyBox As TextBox
Dim Cnt As Long
  Set MyList = Me.選択リスト
  Set MyBox = Forms![F_フォームB].[結果ボックス]
  
  MyBox.Value = ""
  For Cnt = 0 To MyList.ListCount - 1
    If MyList.Selected(Cnt) Then
      MyBox.Value = MyBox.Value & MyList.Column(0, Cnt) & "  "
    End If
  Next
  
  Set MyList = Nothing
  Set MyBox = Nothing
End Sub

こんな感じでいかがでしょうか?
・ツリー全体表示

【5015】Re:リストからの別のフォームへの移動
質問  H,T  - 05/5/12(木) 16:04 -

引用なし
パスワード
   2つのフォームが開かれている状態です。
リストは複数選択でも一つ選択でも構わないのですが、それを選択してコマンドボタンで押すとそれぞれ対応しているもう一つのフォームに移動したいわけなのですが・・・・(一度同じところのテキストボックスに移動してからもう一つのフォームのテキストに入力されるという形でもかまいません。)
宜しくおねがいします。
・ツリー全体表示

【5014】Re:リストボックスの選択解除の線(枠)
お礼  羅刹  - 05/5/12(木) 15:02 -

引用なし
パスワード
   あぷるさんありがとうございます。
再度、解除処理すると消えます。
処理には影響ないようなので、安心しました。^0^

▼あぷる さん:
>ようやく、何のことかわかりました
>
>線が残るのではなく、それはカーソルですよ。
>Tabキーで次の項目に移ると消えませんか?
>
>リストボックスにフォーカスが残った状態になっているので、
>そう見えるんだと思います。
・ツリー全体表示

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