Access VBA質問箱 IV

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

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


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

【9773】Re:CSVの取り込みと出力の動作
質問  メッツァ  - 07/8/23(木) 0:40 -

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

早速のご返答ありがとう御座います。

そうですね。まずはひとつのファイルを単純にインポートしエクスポートする事を目指します。
既存テーブルを必要としないので、どのように何から作業すればいいかと悩んでしまいました。
インポート定義の要不要などいろいろ交えて考えて迷走しておりました。

その後にクエリを作成し、必要フィールドの抽出を取り込めばいいわけですね。

>> 2.必要列群1.と必要列群2.で別名ファイルにして保存する
>
>この別名ファイルもテキストファイルでいいんですよね?(csv含む)

はい。それで問題ありません。
まだ勉強中でこちらは後回しにしておりますが、最終的にはexlとして保存したいのですが、理由としては、データ加工して特定フィールドに値がある場合にそのデータ列を特定色に変更するためです。
ですがこれを同時進行で実行するには、まだ知識的にも全然先と考えていましたので、基本としてまずは元ファイル(csv)をそのままインポートし、必要フィールドのみを抽出して、エクスポートするところから調べだしたのが今回のいきさつです。

基本部分をまずは成功させたいと考えております。
ご迷惑おかけします。
・ツリー全体表示

【9772】Re:CSVの取り込みと出力の動作
回答  Gin_II  - 07/8/22(水) 23:07 -

引用なし
パスワード
   > よろしければ、その手順だけでも教えていただけると非常に助かります。

まずやることは、複数のふぁいると考えずに、ひとつのファイルで
・データの取り込み
・別ファイルへの出力
を実現することです。

こちらは、VBAでメソッドが準備されているので、アクセスのオブジェクト(クエリ)と
組み合わせるだけで実現できるはずです。

また、この内容だけで言えば、マクロでも実現可能です。
マクロで作成して、それをVBAに変換してもいいと思います。

マクロであれば、
・テキスト変換アクション
でいいですね。

> 2.必要列群1.と必要列群2.で別名ファイルにして保存する

この別名ファイルもテキストファイルでいいんですよね?(csv含む)
・ツリー全体表示

【9771】Re:CSVの取り込みと出力の動作
質問  メッツァ  - 07/8/22(水) 20:36 -

引用なし
パスワード
   Gin_II さん、前回のご回答ありがとう御座いました。

自分なりにいろいろ調べて見ましたが、なにぶん知識が不足しているため、いろいろな書き込みやご指摘いただいたヘルプを確認しても意味の理解に苦しむケースがあります。

丸投げな質問になりかねないのですが、順番的に何を作成していって最後にVBAでどのようにまとめればいいものか、解決に苦しんでおります。

よろしければ、その手順だけでも教えていただけると非常に助かります。

ここをまず見てこれを調べて見なさいなどのご指摘でもかまいませんのでアドバイスいただければと思い、再度投稿させて頂きました。

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

【9770】サブフォームのデータについて
質問  hy  - 07/8/22(水) 15:07 -

引用なし
パスワード
   よろしくお願いします。
(Win XP Access2003)

下記のコードを実行した後に、Accessのフィルタ機能を使用しようとすると、
エラーメッセージが出ます。
レコードセットを行わずに、サブフォームなどにデータをセットしようと思うと
どのような方法がありますか?
教えてください。よろしくお願いいたします。

コード

  Dim cn As ADODB.Connection
  Dim rs As ADODB.Recordset
  Dim sqlcode As String

  Set cn = CurrentProject.Connection
  Set rs = New ADODB.Recordset

  sqlcode = "SELECT 棟, 階, IP, アドレス, IPアドレス, ゲートウェイ FROM 19IPベース_T"

  rs.Open sqlcode, cn, adOpenKeyset, adLockReadOnly

  Set [18空きIP_F].Form.Recordset = rs

  rs.Close
  cn.Close
  Set rs = Nothing
  Set cn = Nothing


エラーメッセージ
「フォームのレコードソースがレコードセットオブジェクトの場合、フォームフィルタは実行できません。」
・ツリー全体表示

【9769】Re:CSVの取り込みと出力の動作
お礼  メッツァ  - 07/8/21(火) 11:01 -

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

早速のご回答、非常に助かります。
なにぶん、Access知識とVBAの知識が乏しい部分がありますが、この手順で、これを使ってっという流れと、調べる対象がわかっただけで、大きな前進です!

とりあえずお礼まで返信させていただきました。

自分なりに再度調べて作業を試みたいと思っております。

その際にまた壁にぶつかる矢も知れませんが、そのときは再度こちらで教えていただければと思っております。その時はよろしくお願いできればと思います。
早速、本日帰宅後いろいろ探ってみようかと思っております。

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

【9768】Re:アクセスデーターベースの特殊文字の抽...
回答  Gin_II  - 07/8/21(火) 8:06 -

引用なし
パスワード
   > A-Z、0-9、漢字、カナ、ひらがな以外の文字が含まれるレコードを抽出。

正規表現を使ってみてはどうでしょう?

Snippet 工房 : RegExp による正規表現
http://x7net.com/~access/AcResSnippetRegExp.html
・ツリー全体表示

【9767】アクセスデーターベースの特殊文字の抽出
質問  アクセス奮闘中  - 07/8/21(火) 6:20 -

引用なし
パスワード
   こんにちは。
現在、顧客の製品購入履歴のアクセスのデーターベースを整理しています。
すると・・・10万件ほどあるデーターの中に、文字化けしたデータがたくさん入っていることが判明しました。

データーベースの中身はこんな感じです。

ID___顧客名________住所________購入製品
1____玉田 太郎___東‰都〇区____ハンド′ープ
2____中山 *恵____北海道札¶市____シャンプー
3____‰田 次郎____・滋賀県名張__トリートメント
4____武田 花子____京£府右京区__ボディー?ーション

とりあえずは、文字化けしているレコードと、正常なレコードを分ける作業をしています。
まずは特殊文字が含まれるレコードの検索を始めています。
現在、クエリをしようしていますが、抽出条件に文字が特定できないため現在困っています。

A-Z、0-9、漢字、カナ、ひらがな以外の文字が含まれるレコードを抽出。という形で、クエリを作成しようとしていますが、どのように抽出条件を書けばいいのか分かりません。

どなたか、特殊な記号が含まれるレコードの抽出方法を教えていただけないでしょうか?
よろしくお願いします。
・ツリー全体表示

【9766】Re:文字化け、記号の抽出
お礼  まろろん  - 07/8/21(火) 1:14 -

引用なし
パスワード
   アドバイスを下さいまして、ありがとうございます。
利用規約に違反していたとしたら、申し訳ないです。
次回利用するときには、注意します。

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

【9765】Re:CSVの取り込みと出力の動作
発言  Gin_II  - 07/8/21(火) 0:38 -

引用なし
パスワード
   > 1.必要列のみにする
> 2.必要列群1.と必要列群2.で別名ファイルにして保存する

この操作自体は、

(1) リンクテーブルを作成
(2) クエリで必要列のみにして、エクスポート

で可能だと思います。
あとは、それを、

> 200から300ファイルを作業を実行しなくてはなりません。

繰り返し実行させるだけですね。

とりあえず、TransferText メソッドをヘルプ等で確認してください。

ちなみに、

> このような作業でDLしたCSVをAccessを起動させてマクロ実行する事で作業ができれば、

対象となるファイル数が可変であれば、マクロではなく、VBAが必要になると思います。
・ツリー全体表示

【9764】CSVの取り込みと出力の動作
質問  メッツァ  - 07/8/20(月) 23:54 -

引用なし
パスワード
   まったくの的外れな質問をさせていただくことになるかもしれませんが、申し訳御座いません。

現在、会社のデータ管理にシステムからDLするとcsvで出力されます。
フィールドは列であり、必要なもの(列)と不要なもの(列)が混在しておりますが、このデータを以下のように加工して保存しております。
1.必要列のみにする
2.必要列群1.と必要列群2.で別名ファイルにして保存する

この作業を毎月、通常作業とは別に200から300ファイルを作業を実行しなくてはなりません。

以前にいた職場にてcsvファイルをきまった場所に保存し、Accessを起動させてマクロの実行(?)することで、ファイルを新たに2ファイル生成するというものがありました。

このような作業でDLしたCSVをAccessを起動させてマクロ実行する事で作業ができれば、作業効率を上げられないかと考えております。

必要列(フィールド)は、どのファイルでも固定であり、ファイルによってずれてしまうなどイレギュラーはありません。

どなたか、こんな質問の意図がはっきりしないもので申し訳御座いませんが、教えていただける方いらっしゃいませんでしょうか。
よろしくお願いいたします。
・ツリー全体表示

【9763】Re:GetSaveAsFilenameについて
お礼  hy  - 07/8/20(月) 20:39 -

引用なし
パスワード
   回答ありがとうございます。
早速やってみました。できました!
ありがとうございます!!

▼hatena さん:
>GetSaveAsFilename は、一つのファイルだけしか返さないと思いますので、
>FileName は配列にしてはダメじゃないですか。
>
>Sub GetSaveAsFilename1()
>
>On Error GoTo GetSaveAsFilename1err
>
>  Dim objXL    As New Excel.Application
>  Dim FileName As Variant
>  Dim i      As Integer
>
>  FileName = objXL.GetSaveAsFilename("", "CSVファイル(*.csv),*.csv", , , True)
>
>  If FileName <> False Then
>    Forms![08SB管理main_F].cmb2 = FileName
>  End If
>
>  objXL.Quit
>  Set objXL = Nothing
>  
>GetSaveAsFilename1err:
>  Exit Sub
>
>End Sub
・ツリー全体表示

【9762】Re:AccessからWord文書を開きたいです
発言  小僧  - 07/8/20(月) 13:10 -

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

> i= doc.Paragraphs.Item(1).Range.Start
> doc.Range(i, i).Text = "千葉県浦安市●●●●"'iは10+1=11
> i = doc.Paragraphs.Item(2).Range.Start
> doc.Range(i, i).Text = "システム(株)"'iは、11+7+1=19
> i = doc.Paragraphs.Item(3).Range.Start
> doc.Range(i, i).Text = "山田はなみ"'iは19+5+1=25

イマイチ、何がやりたいか掴めなかったのですが、


Debug.Print Len("千葉県浦安市●●●●")
⇒ 10

Debug.Print Len("システム(株)")
⇒ 7

Debug.Print Len("山田はなみ")
⇒ 5

という事でしょうか。
・ツリー全体表示

【9761】Re:文字化け、記号の抽出
回答  小僧  - 07/8/20(月) 10:01 -

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

まず、画面上部の

>本サイトの基本方針をまとめました。こちら をご一読ください。

の こちら のリンク先をお読みになって下さい。

> してはいけない質問について

の 丸投げに相当していませんか?

御自分でどこまでできていて、何が解らないのかを明確にご提示すれば
もっと回答がつきやすくなると思われます。


> 1. 文字化けを探し出すことは可能でしょうか?

人間の目から見て文字化けをしていても、
Accessにとってみれば指定された通りの文字を表示しているだけです。
何を持って文字化けと定義するかを人間が決めてあげないと難しいかと思われます。


> 2. 記号が入っているフィールドを探しだすいい方法は無いでしょうか?

1.と同じでどの文字が記号なのかを定義してあげれば可能かと思われます。


> 3. 名前のフィールドに文字列に数値が入っているものも抽出したいのです。

これははっきりと定義されているので、抽出が可能ですね。

抽出条件の箇所に

Like "*[0-9]*"

で抽出が可能かと思われます。


・ツリー全体表示

【9760】Re:GetSaveAsFilenameについて
回答  hatena  - 07/8/20(月) 7:00 -

引用なし
パスワード
   GetSaveAsFilename は、一つのファイルだけしか返さないと思いますので、
FileName は配列にしてはダメじゃないですか。

Sub GetSaveAsFilename1()

On Error GoTo GetSaveAsFilename1err

  Dim objXL    As New Excel.Application
  Dim FileName As Variant
  Dim i      As Integer

  FileName = objXL.GetSaveAsFilename("", "CSVファイル(*.csv),*.csv", , , True)

  If FileName <> False Then
    Forms![08SB管理main_F].cmb2 = FileName
  End If

  objXL.Quit
  Set objXL = Nothing
  
GetSaveAsFilename1err:
  Exit Sub

End Sub
・ツリー全体表示

【9759】GetSaveAsFilenameについて
質問  hy  - 07/8/19(日) 10:47 -

引用なし
パスワード
   よろしくお願いします。GetSaveAsFilenameについて質問です。
(Windows XP Access2000)

あるクエリをCSV形式で出力したいと思い下記のコードを作成しましたが、
「型が一致しません」のエラーが発生します。
どこがおかしいか教えてください。
よろしくお願いいたします。

※cmb2はコンボボックスで次回からの出力先設定を行わなくていいようにパスをコンボボックスに追加するようにしています。

Sub GetSaveAsFilename1()

On Error GoTo GetSaveAsFilename1err

  Dim objXL    As New Excel.Application
  Dim FileName() As Variant
  Dim i      As Integer

  FileName = objXL.GetSaveAsFilename("", "CSVファイル(*.csv),*.csv", , , True)
※ここでエラーが発生しています。

  For i = 1 To UBound(FileName)
    Forms![08SB管理main_F].cmb2 = FileName(i)
  Next

  objXL.Quit
  Set objXL = Nothing
  
GetSaveAsFilename1err:
  Exit Sub

End Sub
・ツリー全体表示

【9758】Re:Access2007 FileSearch参照不能
お礼  ウメ  - 07/8/18(土) 14:33 -

引用なし
パスワード
   ▼YU-TANG さん:
有難うございました。
>support.microsoft.com/kb/935402
上記へアクセスしてみました。

記述内容:
File Search 作業ウィンドウと FileSearch オブジェクトが 2007 に
Microsoft Office プログラムから削除されています。
解決方法
プログラムで アクセス 2007 のファイルを検索する場合、 Dir 関数または FileSystemObject クラスが使用できます。

VBは素人ですが、何とかサンプルを見ながらやってみます。
・ツリー全体表示

【9757】AccessからWord文書を開きたいです
質問  クッキー  - 07/8/18(土) 13:56 -

引用なし
パスワード
   はじめまして。
ちょっと質問があります。
題名には文書を開く、までしか書けなかったのですが
開いたあとに、固定の文を挿入させたいのです。

----------------------------------------------------------
Private Sub 送達状作成_Click()
  Dim wrd       As Object 'オリジナル文書をセット
  Dim doc       As Object 'テンプレート文書用
  Dim g_wordTpPath  As String
  Dim strInfile    As String
  Dim lngRecCOUNT   As Integer

  Dim a As Variant

  '差込印刷のオリジナル文書
  strInfile = "C:\aiueo\警告文雛形.doc"
  strOutFile = "C:\aiueo\警告文.doc"

  If Dir(strInfile) = "" Then
    MsgBox "該当する雛形ファイルがありません。確認してください。",
vbOKOnly, vbCritical, "Wordファイル存在チェック"
    Exit Sub
  End If
'  ワードオブジェクトの取得
  Set wrd = CreateObject("Word.Application")
  Set doc = wrd.Documents.Open(FileName:=strInfile, ReadOnly:=True)


↑この状態で、ファイルはちゃんとOPENします。
ファイルをOPENした状態で、
さらに下にプログラムが続きます。

i = doc.Paragraphs.Item(1).Range.Start
doc.Range(i, i).Text = "千葉県浦安市●●●●"'iは10+1=11
i = doc.Paragraphs.Item(2).Range.Start
doc.Range(i, i).Text = "システム(株)"'iは、11+7+1=19
i = doc.Paragraphs.Item(3).Range.Start
doc.Range(i, i).Text = "山田はなみ"'iは19+5+1=25

doc.SaveAs FileName:=strOutFile
doc.Close SaveChanges:=False

  Set doc = Nothing
  Set wrd = Nothing

Exit_WordPrint:
  Exit Sub
Err_WordPrint:
  MsgBox Err.Number & " " & Err.Description, vbCritical, "エラー"
  GoTo Exit_WordPrint
End Sub


の、ようにワード文書の左上に1件ずつ表示させたいのです。
WordVBAではなく、AccessVBAでの実行をしています。
AccessのデータをWordにエクスポートするやり方でやったら
サーバの関係かなにかでうまくテーブルデータがとれなかった
ので、現状は上に記載したように1件ずつをだらだらと
書いて表示させています。
ちゃんと、ワードには表示されるのですが、


i = doc.Paragraphs.Item(1).Range.Start
doc.Range(i, i).Text = "千葉県浦安市●●●●"

のように、"千葉県浦安市●●●●"
" "で囲まれる文字列は毎回変わる場合、
1行づつ書いてては効率が悪いので
文字列を変数にいれて、カウントし、
そのカウントされた値に1をたして
次の2行目に変数を渡す。そしてまた
1を足して3行目に渡す、
の繰り返しの作業をしたいのですが、
なかなかうまくいきません。

文字列が変わってもちゃんと同じように値が出るように
するにはどうすればよいのでしょうか。


申し訳ありませんがよろしくお願いします。
・ツリー全体表示

【9756】Re:Access2007 FileSearch参照不能
回答  YU-TANG  - 07/8/17(金) 20:15 -

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

>「指定した式に、FileSearchプロパティに対する
>正しくない参照が含まれます。」

関係あるかもしれません。

support.microsoft.com/kb/935402
・ツリー全体表示

【9755】Access2007 FileSearch参照不能
質問  ウメ  - 07/8/17(金) 19:59 -

引用なし
パスワード
   お教えください。
Access2000で作成したプログラムで
Access2003でもエラーがなかったのですが
Access2007でエラーとなります。
Visual Basicは少しわかる程度です。宜しくお願いします。

With Application.FileSearch のところでエラーとなります。
エラー内容
「指定した式に、FileSearchプロパティに対する
正しくない参照が含まれます。」

参照設定は下記のとおりです。
1. Visual Basic Applications
2. Microsoft Access 12.0 Object Library
3. OLE Automation
4. Microsoft DAO 3.6 Object Library
5. Microsoft Visual Basic for Applications Extensibitity 5.3
・ツリー全体表示

【9754】文字化け、記号の抽出
質問  まろろん  - 07/8/17(金) 6:59 -

引用なし
パスワード
   アクセス初心者です。
現在6万件ほどの住所と名前のデーターべースから、文字化けしていたり記号が入っているデータを探し出すクエリを作成していますが、なかなかうまくいきません。

1. 文字化けを探し出すことは可能でしょうか?

2. 記号が入っているフィールドを探しだすいい方法は無いでしょうか?

3. 名前のフィールドに文字列に数値が入っているものも抽出したいのです。

皆さんでしたら、どのように記述しますか?
ど素人な質問ですみません。
どなたかアドバイスをよろしくお願いします。
・ツリー全体表示

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