Access VBA質問箱 IV

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

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


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

【8021】Re:CSV形式のエクスポートについて
質問  Satsuki  - 06/6/22(木) 14:50 -

引用なし
パスワード
   クロさん、早速お教え頂いてありがとうございます。
エクスポート先の設定は、思ったとおりになりました。
ありがとうございました。
後、ダブルクォーテーションマークはとれたのですが、フィールドによって前後にスペースが入ってしまうのはどのようにしたらよいでしょうか?
度々すいません。よろしくお願いいたします。


>こんにちは
>
>>後、もう一点は、アクセスファイルとは違うところにエクスポートするための設定方法がわかりません。
>
>前後しますがこちらから…
>
>>  Open CurrentProject.Path & "\ファイル.txt" For Output As #myfile
>
>ここのCurrentProject.Pathを別のパスを書いてみてください
>
>Open "C:\●●●\ファイル.txt" For Output As #myfile
>
>のような感じで
>
> 
>>  Write #myfile, rs.Fields("氏名&番号"), rs.Fields("活動状況"), rs.fields("コメント"), rs.Fields("備考")
>
>ここは
>Print #myfile, rs.Fields("氏名&番号"); ","; rs.Fields("活動状況");",";rs.fields("コメント");",";rs.Fields("備考")
>
>でどうでしょうか?
・ツリー全体表示

【8020】Re:CSV形式のエクスポートについて
回答  クロ  - 06/6/22(木) 14:33 -

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

>後、もう一点は、アクセスファイルとは違うところにエクスポートするための設定方法がわかりません。

前後しますがこちらから…

>  Open CurrentProject.Path & "\ファイル.txt" For Output As #myfile

ここのCurrentProject.Pathを別のパスを書いてみてください

Open "C:\●●●\ファイル.txt" For Output As #myfile

のような感じで

 
>  Write #myfile, rs.Fields("氏名&番号"), rs.Fields("活動状況"), rs.fields("コメント"), rs.Fields("備考")

ここは
Print #myfile, rs.Fields("氏名&番号"); ","; rs.Fields("活動状況");",";rs.fields("コメント");",";rs.Fields("備考")

でどうでしょうか?
・ツリー全体表示

【8019】CSV形式のエクスポートについて
質問  Satsuki  - 06/6/22(木) 13:05 -

引用なし
パスワード
   Satsukiと申します。
あちこち検索致しましたが、どうしても見つからないので、どなたかご教示頂けないでしょうか?
フォームで抽出したデータをCSVファイルとしてエクスポートしたいのですが、各データにダブルクオーテーションマーク””をつけないようにするにはどうしたらよいでしょうか?
後、もう一点は、アクセスファイルとは違うところにエクスポートするための設定方法がわかりません。
よろしくお願いいたします。

  Dim rs As DAO.Recordset
  Dim myfile As Integer
  
  Set rs = Me.RecordsetClone
  myfile = FreeFile
  Open CurrentProject.Path & "\ファイル.txt" For Output As #myfile
  
  rs.MoveFirst
  Do Until rs.EOF
  
  Write #myfile, rs.Fields("氏名&番号"), rs.Fields("活動状況"), rs.fields("コメント"), rs.Fields("備考")
  
  rs.MoveNext
  Loop
  
  Close #myfile
  Set rs = Nothing
  MsgBox "処理終了"
・ツリー全体表示

【8018】Re:文字列から数字だけを取り出したい
発言  初心者です  - 06/6/22(木) 6:19 -

引用なし
パスワード
   ありがとうございます!今日試してみますね。
・ツリー全体表示

【8016】Re:文字列から数字だけを取り出したい
回答  Gin_II  - 06/6/21(水) 8:30 -

引用なし
パスワード
   #バージョンは記載してください。

>12ab から 12
>345c から 345
>6789def から 6789
>を取り出す命令文をここ三日くらい探しています。
>どなたか教えていて頂けないでしょうか?

Val 関数を試してみてください。

Microsoft Office アシスタント: Val 関数
http://office.microsoft.com/ja-jp/assistance/HP010433041041.aspx


先頭に数値以外のものが入っているのなら、1文字ずつ切り出す自作関数を作るか
正規表現を使った自作関数を作るかになると思います。
・ツリー全体表示

【8015】文字列から数字だけを取り出したい
質問  初心者です  - 06/6/21(水) 4:54 -

引用なし
パスワード
   教えてください。
12ab から 12
345c から 345
6789def から 6789
を取り出す命令文をここ三日くらい探しています。
どなたか教えていて頂けないでしょうか?
よろしくお願いします。
・ツリー全体表示

【8014】Re:参照設定
お礼  アクセク  - 06/6/19(月) 21:25 -

引用なし
パスワード
   ▼たん さん:
>参照設定を確認し直して下さい。

ご指摘ありがとうございます。
エラーが出て困ったときに、参照設定の事がボード上にあり一応確認してみました。比較のため旧環境(image fileが保存してあったので)を再現して、確認しましたが同じ設定でした。
参照設定では、どちらもDAO3.6にチェックが入っています。

旧環境との違いは、
旧)97が既にインストールしてあったところへ、XP_SP2をインストールした
新)XP_SP2上へ、97をインストールした
ですが、何か違いがあるのでしょうか。

DLLは、DAO3.5とDAO3.6が同じフォルダ上に格納されています。
97では3.5を使っていたのでしょうか。
DAO3.5をレジストリーに再登録しないとだめなのでしょうか。
それとも、コーディング上で付加する部分があるのでしょうか。
・ツリー全体表示

【8013】Re:参照設定
回答  たん  - 06/6/19(月) 11:13 -

引用なし
パスワード
   参照設定を確認し直して下さい。
・ツリー全体表示

【8012】Re:コンボボックスでテーブルを取得するに...
回答  しょうきち  - 06/6/19(月) 11:04 -

引用なし
パスワード
   ▼ど素人 さん:
>クエリでコンボボックスにテーブルに書かれている情報を
>表示させるにはどうすればよいのでしょうか?
>
>私の場合はビデオ種類というテーブルをつくり、
>その中にビデオ種類番号とビデオ種類名というのを
>書きました。
>
>マクロではなくVBAを使っています。

RowSourceプロパティを参考にしてください。

me!コンボボックス.RowSource="SQL文"
・ツリー全体表示

【8011】Re:Range 引数
お礼  ユミちゃん  - 06/6/18(日) 1:06 -

引用なし
パスワード
   ▼Gin_II さん:
できました。本当にありがとうございました。
何かHAPPYな気持ちです。今夜はゆっくりと眠れます。
・ツリー全体表示

【8010】Re:Range 引数
回答  Gin_II  - 06/6/17(土) 23:52 -

引用なし
パスワード
   >下記の "集計" は sheet名の指定と解釈していました。

Range 引数は、シート名や、範囲名なんかを指定することができます。
が、シート名の場合には、
"シート名!"
のように記述する必要があります。


>sheet1がインストールされます。

ちなみに、インポートですね。
なるべく用語はきちんと使いましょう。その方が混乱が少ないので ^^;
・ツリー全体表示

【8009】Re:小僧さんじゃありませんが。
質問  ユミちゃん  - 06/6/17(土) 23:19 -

引用なし
パスワード
   ▼Gin_II さん:
ありがとうございました。
早速教えていただいたとおり修正して実行しましたが、
オブジェクト "集計"が見つかりませんでした。オブジェクトが存在すること
名前やパス名が正しいことを確認してください。
というメセージが出ました。下記の "集計" は sheet名の指定と解釈して
いました。"集計"を削除して実行しますとsheet1がインストールされます。
sheet5の集計をインストールしたいのですがsheetの選択はできないのでしょうか。何度も申し訳ございませんがよろしくお願いいたします。

DoCmd.TransferSpreadsheet acinport, acSpreadsheetTypeExcel9, "集計表", xName, True, "集計"
Call インポート(FName)
・ツリー全体表示

【8008】コンパイルエラー(関数またはインターフ...
質問  アクセク  - 06/6/17(土) 21:06 -

引用なし
パスワード
   はじめまして、PCの再インストールを実施後、フォームからイベントを実行すると、
コンパイルエラー
「関数またはインターフェイスが予約されているか、または Visual Basic でサポートされていないオートメーション タイプが関数で使用されています。」
が表示され、処理ができなくなってしまいました。

過去ログを調べたところ類似の書き込みがあり、MSNのサポート情報へのリンクが張ってあったので早速調べたところ、既にサポート外になっていました。
何とか検索してみましたが、それらしい情報は見当たりませんでした。

使用環境とエラーの発生した箇所
OS;XP(SP2 -DAO360.DLL-)、Access;97

Dim db As DAO.Database
Set db = CurrentDb() ←ここが反転表示

再インストールは同じ環境に戻したはずなのですが・・・
今まで何も問題なく動いていたのですが、さっぱりわかりません。
どのように書き直したらよいのか、ご教示いただけると助かります。
・ツリー全体表示

【8007】Re:小僧さんじゃありませんが。
回答  Gin_II  - 06/6/17(土) 20:57 -

引用なし
パスワード
   > DoCmd.TransferSpreadsheet acinport, acSpreadsheetTypeExcel9, "集計表", "c:\ライン集計表.xls", True, "集計"

DoCmd.TransferSpreadsheet acinport, acSpreadsheetTypeExcel9, "集計表", xName, True, "集計"


> Call インポート(FName)

別モジュールにする理由がよくわかりませんけど。
・ツリー全体表示

【8006】コンボボックスでテーブルを取得するには?
質問  ど素人  - 06/6/17(土) 19:44 -

引用なし
パスワード
   クエリでコンボボックスにテーブルに書かれている情報を
表示させるにはどうすればよいのでしょうか?

私の場合はビデオ種類というテーブルをつくり、
その中にビデオ種類番号とビデオ種類名というのを
書きました。

マクロではなくVBAを使っています。
・ツリー全体表示

【8005】小僧さん。よろしくお願いします。
質問  ユミちゃん  - 06/6/17(土) 17:34 -

引用なし
パスワード
   小僧さん。
いつもお世話になります。
ACCESSからダイアログを表示してEXCELをインポートしたいのですが
過去ログで下記の内容を参考にさせていただきました。
'こちらでTransferSpreadsheetメソッドを発行のところで
DoCmd.TransferSpreadsheet acinport, acSpreadsheetTypeExcel9, "集計表", "c:\ライン集計表.xls", True, "集計"
としてしまうとダイアログで選択した意味がなくなってしまいます。
"c:\ライン集計表.xls" をダイアログで選択した値を反映させる方法が
どうしても判りません。
よろしくお願いします。

Sub ダイアログを呼び出す()
'要参照設定 Micosoft Office x.x Object Library 10.0以降
Dim FName As Variant

  Const IFName = "C:\"  'デフォルトのパスを設定

  With Application.FileDialog(msoFileDialogFilePicker)
    .AllowMultiSelect = True
    .Title = "インポートするファイルを選択(複数選択可)"
    .Filters.Add "Excel ファイル", "*.xls"
    .InitialFileName = IFName
    
    If .Show = -1 Then
      For Each FName In .SelectedItems
        Call インポート(FName)
      Next
    End If
  End With
End Sub

Function インポート(xName As Variant)
'こちらでTransferSpreadsheetメソッドを発行
  MsgBox xName

End Function
・ツリー全体表示

【8004】Re:レコードの更新の許可
お礼  あおぎん  - 06/6/16(金) 15:29 -

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


教えていただいた方法でできました。条件付書式でコントロールを無効にできると思ってなかったので・・。まだまだ勉強不足です。

条件も、おっしゃるとおり最大値以外の年度の更新不許可を考えていましたので、そのように設定したらできました。

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

【8003】Re:レコードの更新の許可
回答  Gin_II  - 06/6/16(金) 14:35 -

引用なし
パスワード
   >今のところ16、17、18年度分のデータしかないので、『年度が17以下
>だったら更新及び削除を許可しない』というコードをフォームを開くイベントに、
>次のように記入してみましたが、そうするとすべての年度のレコードが更新でき
>なくなってしまいました。ヘルプ等で調べましたがよくわかりません。
>解決方法もしくは解決のヒントでもご教示いただけるとうれしいです。

条件付書式機能を使ってください。


>また、年度データは毎年増えていくので、そのたびごとに数字を書き替えなくて
>いい方法がありましたら教えていただけると嬉しいです。

どういった条件で?

例えば、テーブルに入力されている年度の最大値を取得して、その年度以外で
あれば、更新できないようにするのであれば、

条件付書式で、式を使って

DMax("フィールド名", "テーブル名")>[フィールド名]

のようにするとか。
・ツリー全体表示

【8002】Re:マクロの実行エラーについて教えてくだ...
お礼  NEMOTO  - 06/6/16(金) 14:27 -

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

【8001】レコードの更新の許可
質問  あおぎん  - 06/6/16(金) 14:16 -

引用なし
パスワード
   こんにちわ。いつも参考にさせていただいています。

顧客の住所等を管理するデータを入力するフォームAと、その売上を管理するデータを入力するフォームBがあります。売上データは、年度ごと・顧客ごとで管理しているので、フォームAからフォームBを開いた際、年度の数のレコードが表示されるのですが、古い年度の分を誤って更新してしまわないように、特定の年度のレコードを編集不可にしたいと思っています。
今のところ16、17、18年度分のデータしかないので、『年度が17以下だったら更新及び削除を許可しない』というコードをフォームを開くイベントに、次のように記入してみましたが、そうするとすべての年度のレコードが更新できなくなってしまいました。ヘルプ等で調べましたがよくわかりません。
解決方法もしくは解決のヒントでもご教示いただけるとうれしいです。

また、年度データは毎年増えていくので、そのたびごとに数字を書き替えなくていい方法がありましたら教えていただけると嬉しいです。

アクセス2000を使っています。
よろしくお願いいたします。

Private Sub Form_Open(Cancel As Integer)

If Me!年度 <= 17 Then
 Me.AllowDeletions = False
 Me.AllowEdits = False
 
 Else
 Me.AllowDeletions = True
 Me.AllowEdits = True
End If

End Sub
・ツリー全体表示

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