Access VBA質問箱 IV

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

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


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

【9020】エクスポートのファイル名
質問  あおぎん  - 07/1/19(金) 17:06 -

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

フォーム上のコマンドボタンで Q_中学校就学予定児童名簿_xls用のデータをエクセルにエクスポートするようにしています。
フォーム上で、中学校名を選択してからエクスポートしているので、この中学校名をファイル名に反映させたいのですが、方法がよくわかりません。

現在

Private Sub エクセル変換_Click()
If InputCheck2() <> 0 Then
    MsgBox "入力されていない項目があります。", vbOKOnly, "入力もれ"
    Exit Sub
End If

  DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel9, "Q_中学校就学予定児童名簿_xls用", "E:\名簿\中学校就学予定児童名簿.xls", True

End Sub

とコードを書いていて、これだと中学校就学予定児童名簿というエクセルファイルができます。

パス名を
"'E:\名簿\中学校就学予定児童名簿'& me!中学校名 & '.xls'"
と書いてみましたが、そうするとエラーになります。


どなたか解決方法をお願いします。
・ツリー全体表示

【9019】Re:SQLサーバーを利用した検索について
発言  kohji  - 07/1/19(金) 15:56 -

引用なし
パスワード
   クエリの書き換えさえできれば
問題ないと思いますよ

注意する箇所は特にないように思います

また 結果を聞かせてください
・ツリー全体表示

【9018】Re:SQLサーバーを利用した検索について
質問  ニッキ  - 07/1/19(金) 15:52 -

引用なし
パスワード
   kohji さん ありがとうございます。


早速、処理してみようかと思いますが、抽出結果を別のフォームで表示するように
なっております。

何か注意する所はありますでしょうか?
宜しくお願い致します。
・ツリー全体表示

【9017】Re:SQLサーバーを利用した検索について
回答  kohji  - 07/1/19(金) 14:52 -

引用なし
パスワード
   でしたら
クエリを直接コードから書き換えて(Like "abc*"の形)
フォーム上では表示のみにすれば 早くなると思うのですが…

コードは 以下のような感じでいいと思います

Function Query_Update()
  Dim wQuery As String, wSQL As String

  Dim oCat As New ADOX.Catalog
  Dim oCmd As ADODB.Command
  Dim oViw As ADOX.View

  '作成するクエリ名
  wQuery = "Q_xxxx"

  '作成するクエリのSQL文
  wSQL = "SELECT * FROM [xxxx] WHERE [Field] Like 'xxxx*';"

  With oCat
    .ActiveConnection = CurrentProject.Connection
    .Views.Refresh
  End With

  DoEvents
  With oCat
    For Each oViw In .Views
      If oViw.Name = wQuery Then
        .Views.Delete wQuery
        Exit For
      End If
    Next
  End With

  DoEvents
  Set oCmd = New ADODB.Command

  oCmd.CommandText = wSQL
  oCat.Views.Append wQuery, oCmd

  On Error Resume Next
  Set oCmd = Nothing
  Set oCat = Nothing
  On Error GoTo 0
End Function

ただし
参照設定[Microsoft ADO Ext 2.7 DLL And Security]を有効にしてください

参考になれば幸いです
・ツリー全体表示

【9016】Re:SQLサーバーを利用した検索について
質問  ニッキ  - 07/1/19(金) 14:19 -

引用なし
パスワード
   kohji さん 回答ありがとうございます。


フォームのフィルタ機能を使用しているわけではありません。
クエリーの抽出条件に
   Like [Forms]![抽出]![a] & "*"
と入れた場合と、
   Like "abc*"
と入れた場合で抽出時間が変わってしまうと言うことです。
・ツリー全体表示

【9015】Re:Excelのシートの読込について
回答  Gin_II  - 07/1/19(金) 13:02 -

引用なし
パスワード
   >Excelのシートを読込みたいのですが表示されていないシートについでも
>読込可能なのでしょうか?

試せば分かることでは?
・ツリー全体表示

【9014】Excelのシートの読込について
質問  NEMOTO  - 07/1/19(金) 10:15 -

引用なし
パスワード
   Excelのシートを読込みたいのですが表示されていないシートについでも
読込可能なのでしょうか?
それとも一度Excelを開いて再表示してから保存しないといけないのでしょうか?
・ツリー全体表示

【9013】Re:メッセージボックスの表示について
お礼  代理人  - 07/1/19(金) 10:09 -

引用なし
パスワード
   ▼小僧 さん:
ありがとうございました!!早速伝えます!!

>▼代理人 さん:
>こんにちは。
>
>>Accessのマクロで、終了したらメッセージボックスを表示するようにしている
>>他の作業をしていても必ず前面に出て来るよう設定する方法はありますか?
>
>マクロだと難しいかもしれませんね。
>
>標準モジュールに下記のようなコードを書き、セーブします。
>
>Function exMsgBox()
>  MsgBox "処理が終了しました", vbSystemModal, "終了確認"
>End Function
>
>
>マクロからは
>[プロシージャの実行] で、プロシージャ名を exMsgBox() と指定します。
>
>こんな感じでいかがでしょうか。
・ツリー全体表示

【9012】Re:Accessタイトルバーのxボタン無効化
回答  kohji  - 07/1/19(金) 10:06 -

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

以下で Accessの閉じるボタンの無効化ができました
参考にしてください

Option Compare Database
Option Explicit

Private Declare Function GetSystemMenu Lib "user32" (ByVal hWnd As Long, ByVal fRever As Long) As Long
Private Declare Function RemoveMenu Lib "user32" (ByVal hMenu As Long, ByVal uItem As Long, ByVal fuFlags As Long) As Long
Private Declare Function DrawMenuBar Lib "user32" (ByVal hWnd As Long) As Long

Private Const MF_BYCOMMAND = &H0&
Private Const SC_SIZE = &HF000
Private Const SC_MAXIMIZE = &HF030
Private Const SC_CLOSE = &HF060
Private Const SC_RESTORE = &HF120

Public Function SetAccWinStyle()
  Dim hWnd As Long

  hWnd = GetSystemMenu(hWndAccessApp, 0)
  RemoveMenu hWnd, SC_CLOSE, MF_BYCOMMAND
  DrawMenuBar hWndAccessApp
End Function
・ツリー全体表示

【9011】Re:SQLサーバーを利用した検索について
回答  kohji  - 07/1/19(金) 9:50 -

引用なし
パスワード
   ニッキさん こんにちは

>尚、フォームを使わず、クエリーの条件に直接入力した場合は、
>すべて抽出時間は早く問題はありません。

フォームのフィルタ機能を使用しての抽出時間は遅いが
クエリに直接入力しての抽出時間は早い…
という理解でよろしいでしょうか?

であれば
コード上でクエリを直接書き換えて
フォームではフィルタ機能を使用せずに表示のみ行えば
もしかしたら早くなるかもしれませんよ

あくまでも 推測ですが…
・ツリー全体表示

【9010】Re:ソートについて
質問  まっちゃ  - 07/1/17(水) 14:27 -

引用なし
パスワード
   >CLng([フィールド名])

早速の回答ありがとうございます。
教えていただいたとおりにやってみたのですが、それでも文字列としてしか並んでくれません。他にプロパティの設定等が誤っている箇所があるからでしょうか?
・ツリー全体表示

【9009】Re:ソートについて
回答  Gin_II  - 07/1/17(水) 14:17 -

引用なし
パスワード
   >レコードを一覧形式で表示するフォームを開く際に、特定の項目でソートして表示させたいため、フォームのプロパティにある『並べ替え』の箇所に項目名を入れています。

CLng([フィールド名])
のように入れてみてください。
・ツリー全体表示

【9008】ソートについて
質問  まっちゃ  - 07/1/17(水) 14:03 -

引用なし
パスワード
   レコードを一覧形式で表示するフォームを開く際に、特定の項目でソートして表示させたいため、フォームのプロパティにある『並べ替え』の箇所に項目名を入れています。
ただし、並べ替えに設定した項目は数字項目が入っているのですが、列の型がテキスト型のためうまく並んでくれません。

≪現在の状態≫
1
11
101

≪希望する状態≫
1
2
・・・
11
12

もちろん、並び替えの項目を数値型にすればよいのですが、他の処理との関係上テキスト型のままにしておきたいです。
テーブルの列の型を変えないで並び替えを行うための対処方法をご存知の方がいらっしゃいましたらご教授願います。
・ツリー全体表示

【9007】Re:コンボボックスを使った検索で、シング...
お礼  bigote  - 07/1/16(火) 20:04 -

引用なし
パスワード
   ▼まさ7251 さん:

ご指摘のように、いろいろググッてみました。

結論としては、文字列にシングルコーテーションが含まれると、そこで文字列終了とみなされ、式全体としてエラーになる。
シングルコーテーションを2回繰り返すことで、文字としてのシングルコーテーションと認識させることができる。よって、Replace関数が有効なんですね。

【8992】後半の私の疑問は、なんら意味がなさそうです。
みなさん、いろいろお世話になりました。m(__)m
・ツリー全体表示

【9006】Re:抽出の仕方
お礼  こあら  - 07/1/16(火) 17:48 -

引用なし
パスワード
   こんにちは
早速のご返答をありがとうございました
*でやってみたらできました
いきなりほかの方のつくったアクセスを操作することになり
操作しながら勉強しています
これからもよろしくお願い致します
・ツリー全体表示

【9005】Re:【8958】月集計の延長ですが・・・
お礼  キム  - 07/1/16(火) 12:45 -

引用なし
パスワード
   ▼Gin_II さん:
>Format(DateAdd("m", -1, CDate(コンボボックス名 & "/1")), "yyyy/mm")
>のようにすれば、前月になります。

ありがとうございました!"yyyy/mm"に変えてみました!参考にいろいろしてみます!
・ツリー全体表示

【9004】Re:【8958】月集計の延長ですが・・・
発言  Gin_II  - 07/1/16(火) 11:48 -

引用なし
パスワード
   >テーブルにはyy/mm/ddで入っているのですがクエリでyy/mm/に直してそれをフォーム上で表示するようにしています。

コンボボックスも、
yy/mm
のような形式でデータが入っているということでしょうか?

yyyy/mm
もしくは、
ge/mm
形式の方がいいですね。

前月を取得する場合、日付/時刻型のデータであれば、DateAdd 関数が使えますね。

yyyy/mm形式だとして、

Format(DateAdd("m", -1, CDate(コンボボックス名 & "/1")), "yyyy/mm")
のようにすれば、前月になります。
・ツリー全体表示

【9003】Re:【8958】月集計の延長ですが・・・
お礼  キム  - 07/1/16(火) 11:26 -

引用なし
パスワード
   ▼Gin_II さん:
>メインフォーム上にテキストボックスを作成し、コントロールソースプロパティに
>DSum 関数を使ってやればいいと思います。
>
>> フォームに配置した非連結コンボボックス1で年月を指定すると
>
>これは、具体的にどのような値で、年月が入っているのでしょうか?

ありがとうございます!調べてみます!

テーブルにはyy/mm/ddで入っているのですがクエリでyy/mm/に直してそれをフォーム上で表示するようにしています。
Accessはよくわからないのでカナリ非効率的な気もしますがf^^;
・ツリー全体表示

【9002】Re:【8958】月集計の延長ですが・・・
発言  Gin_II  - 07/1/16(火) 11:23 -

引用なし
パスワード
   メインフォーム上にテキストボックスを作成し、コントロールソースプロパティに
DSum 関数を使ってやればいいと思います。

> フォームに配置した非連結コンボボックス1で年月を指定すると

これは、具体的にどのような値で、年月が入っているのでしょうか?
・ツリー全体表示

【9001】【8958】月集計の延長ですが・・・
質問  キム  - 07/1/16(火) 11:06 -

引用なし
パスワード
   テーブルで
日付(yy/mm/dd)/店舗名/分類/金額
という形式でレコードを保存しています。
クエリで月別に集計をかけることはできている状況です。
フォームに配置した非連結コンボボックス1で年月を指定するとサブフォームにその年月の日付、店舗名、分類、金額が表示されるようになっています。

そこで質問なのですが、非連結コンボボックスで年月を指定すると、サブフォームでその年月のレコードが表示されてなおかつ、その前の年月(指定した年月が07年01月でれば06年12月)の金額の合計を出したいのですが・・・その前の年月の金額合計は別にサブフォーム内でなくてもかまいません。

どうすればよいのか八方塞で・・・ご指導宜しくお願いいたします。
・ツリー全体表示

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