マンガでよめる痔のこと・薬のこと

こんにちは。
楽天市場の店舗で、編集作業などを担当しているものです。

店舗編集機能にあるCSVファイルをつかっての商品一括登録について質問です。
「商品ページ」の一覧をダウンロードし、Accessで編集したいのですが勝手がいまいちよく分からず悪戦苦闘しています。
汲 たりの文字数が多くHTMLソースが書き込まれている「商品ページ」などはAccessを使わざるを得ない状況で、非常に困っています。
以下に行いたい処理を箇条書きいたします。
Accessでは列・行・セルのような言い方はしないと思うのですが、大目に見てください…(スミマセン)

エクセルみたいに
○列を指定して名前順に行を並べ替え
○特定の文字列を検索&置換
○セルをコピーして複数のセルにまとめてペースト

あと運営上、関数を使って多数の商品ページ名などの頭に同じ文言を付け加えたりなどの作業が多く発生します。HTMLソースが入っていない(もしくは少ししか入っていない)列ならば、エクセルにコピペして、そこで処理して再びAccessに戻す、というように無理矢理処理しているのですが、説明文の部分などソースがたっぷりの部分をエクセルに移すと文字が欠けていたりなど、不都合が起きてしまいます。
これも回避できる方法があるのならとても助かります。Access上で同じような作業が出来るのならなお助かります。

以上になりますが、皆様のお知恵を拝借したいと思います。
そもそもアクセスはこういった処理の為にあるソフトではないと思いますので難しいのかも知れませんが、これができればとっても楽に編集できるようになります!

アクセスについて全くの無知なので、皆様何卒よろしくお願いいたします。

※数時間前に同様の質問をしていたのですがアクセスの綴りが違ったので訂正して再質問とさせて頂きました

このQ&Aに関連する最新のQ&A

A 回答 (2件)

ちょっと回答が遅かったかもしれませんが、マクロなどを使用せず、


マウスとキーボードで対応するとしたら、ということで参考までに:

>○列を指定して名前順に行を並べ替え
 並べ替えたい列を右クリックしたときに表示されるショートカットメニューから
 「昇順で並べ替え」「降順で並べ替え」を選択。

>○特定の文字列を検索&置換
 検索や変換をしたいデータを表示させた上で、キーボードで
 Ctrlキー+F(=検索)、Ctrl+H(置換)を押し、表示されたダイアログで
 検索・置換する文字列などを指定。

>○セルをコピーして複数のセルにまとめてペースト
 コピーしたいセルの左端にマウスカーソルを持っていくと白十字になるので、
 そこでマウスをクリック&ドラッグすると、領域が選択できます(白黒反転表示)。
 この状態でキーボードでCtrl+Cを押してコピーしたら、貼り付けたい領域を
 同じように選択(反転表示)させて、Ctrl+Vを押して貼付。
 *Excelと違い、Ctrlキーと組み合わせたマウス操作をしても、飛び地のセルは
  選択できません。
 
>多数の商品ページ名などの頭に同じ文言を付け加えたり
 これについては、残念ながら私は方法を知りません。
 (更新クエリでの処理なら可能です)


・・・ご質問の意図を取り違えていましたら、ご容赦下さい。
    • good
    • 0

HTML云々については質問からだけではどうしたいのかよく分かりませんが



CSVファイルをということなら、Accessにテーブルとしてインポートしていろんな処理を加えることが可能です

ただし、Accessはデータベース、Excelは表計算ですから
>エクセルみたいに
>○列を指定して名前順に行を並べ替え
>○特定の文字列を検索&置換
>○セルをコピーして複数のセルにまとめてペースト
このようなことはできません
並べ替え、検索は抽出クエリ、置換、ペーストは更新クエリで行うことになります

ExcelもAccessも見た目は同じような表なので
同じように出来ると考えるExcelからの転向者が多いですが
全く異なるジャンルのソフトですからそのような考えはいたずらに回り道をするだけです

きちんと1から勉強されることが結局は近道ですよ
特にAccessはExcelのように触っているだけでなんとなく分かってくるという様な訳には行かないソフトです
何冊か参考書を読破するぐらいの覚悟が必要です
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。
やはり、アクセスではエクセルのように処理する事は難しいのですね…。
パッと見の構成が同じようなのでつい同じようにできるものなのかと…(汗)
そうですね、参考書などで勉強したいと思います!
この度はありがとうございました。

お礼日時:2006/04/18 01:53

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

関連するカテゴリからQ&Aを探す

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QCSVファイルの内容を編集する方法について

こんにちは。CSVファイル(1レコード9項目、平均50レコード)を何らかのオブジェクトに格納し、各レコードの項目を編集・一括更新を行う方法はないか、現在模索しております。以前のスレッドではOLEのエンジンを使用してCSVファイルを模擬的にDBとしてデータグリッドに表示させる方法を確認し、試行しましたが、編集できない&レコード読み飛ばしができないなど、不都合があったため、改めて質問させていただきました。一番思いつくのは、テキストボックスを2次元に並べて、コマンドボタンで一括保存などがありますが、コントロール数やオブジェクト数にも配慮した方法がありましたら、お教えください。

Aベストアンサー

>VBソフト側では表示のみで、編集を市販のアプリケーションに頼るのはちょっとかっこ悪いですよね・・・

あまり気にしませんが…
費用対効果もありますし、苦労してVBで作っても、ユーザーから"EXCELの方が使いやすい"と言われればそれはそれでかっこ悪い気もします。

ERPでも、EXCELへの出力/入力はありますよ。

修正内容・修正頻度などにもよると思うので一概にはいえませんが、

修正が一点一様であればEXCEL+VBA
修正がパターンかできるならACCESSや、VB+DBGRID
修正が毎回同じならVBで自動化
とか

EXCEL側をVBAで作りこむというのも選択肢としてあっても言いと思います。
[CSV読み込みボタン]で読み込んで、ヘッダーはVBAでセット。
異常値のチェックもVBAで仕込む。
[CSV書き出しボタン]で書き込み。
書き込み後VBアプリの起動というのもできます。

VBから、[EXCELで修正するボタン]で
・CSVデータ作成
・EXCELの起動
・EXCEL起動時にCSVを自動読み込み
とか連携をするとかっこ悪くはないと思います。


とりあえず、そんな考えもありますよ、ということで。

>VBソフト側では表示のみで、編集を市販のアプリケーションに頼るのはちょっとかっこ悪いですよね・・・

あまり気にしませんが…
費用対効果もありますし、苦労してVBで作っても、ユーザーから"EXCELの方が使いやすい"と言われればそれはそれでかっこ悪い気もします。

ERPでも、EXCELへの出力/入力はありますよ。

修正内容・修正頻度などにもよると思うので一概にはいえませんが、

修正が一点一様であればEXCEL+VBA
修正がパターンかできるならACCESSや、VB+DBGRID
修正が毎回同じならVBで自動化
...続きを読む

Q【Access】クエリで抽出したデータをCSV形式でエクスポートできますか?

タイトルの通りなのですが、
クエリーで抽出したデータをcsv形式でエクスポートするには
どのようにすればいいのでしょうか?
Accessに慣れていなくて困っています、どなたか教えてください(>_<)

その後はいろいろ加工したいので、
最終的にはExcel形式で保存しなおそうと思っています。
初めからExcel形式でエクスポートすると、とても重くなるし、
いちいち「再計算」がかかってしまうので作業がやりづらいんです。。。

どなたかお力を貸してください。
よろしくお願いします!

Aベストアンサー

クエリをクリックし選択状態にしてメニューのファイルのエクスポートもしくはクエリを右クリックしエクスポートを選択すると保存する場所の選択するダイアログが出ますのでファイルの種類をテキストファイルを指定し保存するホルダとファイル名を指定します。
指定するとテキストエクスポートのウィザードが表示されますので順次進めていきエクスポート先のファイル名でパスとファイル名が表示されますのでcsvで保存するなら最後の.txtを.csvに変更しOKをクリックすればcsvで保存でします。

Qcsvファイルをアクセスにインポート

こんにちは。Access2000について質問させてください。よろしくお願いいたします。


csvファイル内のデータをAccess2000に作成したデータベースにインポートしたいんのですが、どうすれば良いでしょうか?

何を調べたらいいかもわからない状態で…

どなかかご存知の方がいらっしゃったら教えて下さい。なにとぞ宜しくお願いいたします。

Aベストアンサー

メニューのファイルメニューから外部データの取り込みを選択するかデータベースウィンドウ上で右クリックしインポートを選択します。
ファイルの種類をテキストファイルに設定しcsvファイルのあるフォルダを開きファイルを指定しインポートボタンをクリックするとインポートウィザードが開きますので順次従って進めればできます。
データを保存する場所で既存のテーブルに保存したければ次のテーブルで指定します。ウィザードの設定が終わったら完了ボタンでインポートできます。
ウィザードにある設定ボタンをクリックすればインポート定義を登録できます。インポート定義を登録すれば次回からフィールドの設定などしなくてインポート定義を使って同様のデータ構成のファイルはインポートできるようになります。
ヘルプでインポートで検索すれば出てきますのでそちらも参照してください。

QExcelでのCSVファイルの編集について、

ExcelでのCSVファイルの編集について、

オートフィルタ機能を使いたいため、
ExcelでCSVファイルの編集しようとしているのですが、ちょっと苦戦しています。。。

私が試してみたこと
1.もとのCSVファイルの拡張子を○○.csv → ○○.txtに変更。
  ↓
2.Excelの「開く」からその○○.txtを読み込む。
  ↓
3.テキストファイルウィザードに従い、
  1「カンマやタブなどの区切り文字によって~ 」にチェック
  2「区切り文字」→ カンマ、「文字列の引用符」 → "
  3「列のデータ形式」 → 文字列 ※090などの数字を、90と先頭の0を消されないように

上記のような手順でCSVファイルを取り込み、編集を終え、
保存する時は

  「○○.txtにはテキスト(タブ区切り)と互換性のない機能が含まれている可能性があります。
   この形式でブックを保存しますか?」 → このまま保存するため「はい」を選択

これでバッチリOK!…かと思われたのですが、
元の編集前の○○.txt は"名前","ヨミ","電話番号1", …… ""とカンマ区切りであったのが、
編集後の○○.txtは名前ヨミ電話番号1  …… タブ区切り(?)
となってしまっています。
(CSVファイルとしてはタブ区切りでも問題ないのでしょうが…)


どうすれば元のカンマ区切りの形式のまま保存できますでしょうか。


アドバイスよろしくお願い致します。

ExcelでのCSVファイルの編集について、

オートフィルタ機能を使いたいため、
ExcelでCSVファイルの編集しようとしているのですが、ちょっと苦戦しています。。。

私が試してみたこと
1.もとのCSVファイルの拡張子を○○.csv → ○○.txtに変更。
  ↓
2.Excelの「開く」からその○○.txtを読み込む。
  ↓
3.テキストファイルウィザードに従い、
  1「カンマやタブなどの区切り文字によって~ 」にチェック
  2「区切り文字」→ カンマ、「文字列の引用符」 → "
  3「列のデータ形式」 → 文字列 ※090な...続きを読む

Aベストアンサー

CSVは「値をカンマで区切ってある」テキストなので、タブ区切りは
確実に間違いですね。Excelはテキスト形式をタブ区切りかスペース
区切りだと思い込むので、上書き保存せず「名前をつけて保存…」
で形式にCSVを選択して下さい。

文字列を全部なにもかもダブルクォーテーションで囲むのは、CSVと
しては傍流です。数値と紛らわしい数字だけで構成される文字列や
文字列の中にカンマや改行を含める場合に限定して囲む、のが主流
です。問題は、Excelは数字で構成された文字列を囲まないってとこ
ろですかね。相手のアプリケーションがちゃんとしたデータベース
なら特に問題にならないはずですが、どうなんでしょう。

フィルタで条件設定して加工するのが目的なら、Accessやファイル
メーカーでヤル方が楽でしょう。やっぱり、CSVをExcelで開くのは
負け組一直線ですよ。

QAccessのテーブル、クエリをCSV形式でエクスポートしたい

マクロを使ってAccessのテーブルやクエリを、カンマ区切のCSV形式でマクロを使ってエクスポートしたいのですが、それらしいものが見つかりません。

どのようにするのでしょうか?


環境:Access 2003 、WindowsXP

Aベストアンサー

マクロの「アクション」で「テキスト変換」を指定し、画面左下に表示される
『変換の種類』引数に「区切り記号付きエクスポート」を指定すればOKです。
 *VBAの場合は「TransferText」になります。

その他の引数については事例毎に個別になりますので、詳細はヘルプを
参照して下さい。
(マクロ・VBAとも、「TransferText」で検索を掛ければ見られると思います;
 Access2000で確認)

Qインポート時のエラー「データ型の変換エラー」

ACCESS2000を使用しています。
CSVファイルをマクロを使い、インポートしようとしているのですが、ある列に「33300G2」というデータがあります。
インポートのマクロを実行するとそのデータのみがインポートエラー(エラー内容は「データ型の変換エラー」)となってしまいます。
ちなみに、エラーが出る列は、「33300G2」以外全てが数字のみなのですが関係あるのでしょうか。
もし原因らしきものがわかればアドバイスよろしくお願いいたします。

Aベストアンサー

インポート定義をして下さい。
インポート→設定→データ型を変更して下さい。
何かあれば補足して下さい。
がんばれ

QAccessのフォームのみ表示させたい

Accessを起動した際、フォームのみ表示するにはどうすればよいのでしょうか?
(Accessを起動すると、オブジェクトメニュー?(テーブルやクエリ等のオブジクトを選択するウィンドウ)を表示させないで、フォームのみを表示させるには?)
また、上記と同じようにして、なおかつAccessを起動させないでフォームで起動や終了といったことが出来るのでしょうか?
やはりこれはVB等プログラミングでないと出来ないのでしょうか?ちなみに私はプログラミングは全く出来ません。
わかる方、教えて下さい。宜しくお願いします。

Aベストアンサー

ツールメニュー
”起動時の設定”を開き

フォーム/ページの表示にて起動時に表示させたいフォームを選択すれば、そのMDBを開いた時に、該当のフォームが表示されます。

メニュー画面等を作り、各処理のフォームを開いたり、アクセスを終了するマクロを呼び出すボタンを作ればフォームからの終了等も可能です。

また、データベースウィンドウの表示のチェックボックスを外せば、質問者様の言われているオブジェクトメニューは表示されなくなります。

メンテナンス等を行いたい時はshiftキーを押下しながら立ち上げればデータベースウィンドウが表示できます。

QCSVファイルを任意の場所に出力するには?

ACCESS-VBAの初心者です。
ACCESSのテーブルを、csvファイルとして、任意の場所に出力させるには、どのようにしたら良いのでしょうか。
当方初心者につき、なるべく簡単な方法だとさらに助かるのですが。

Aベストアンサー

No.2です。
便利な使い方があるんですね。知りませんでした!

せっかくやる気を出しているので、以下のAPIでダイアログを表示したらどうでしょうか(ネットで調べたものを多少修正しました)。自分の使いやすいように修正してください。このまま使用するなら該当するフォームにそのまま貼り付けてください(=== の間)。
=============================================================
Private Declare Function GetSaveFileName Lib "comdlg32.dll" _
Alias "GetSaveFileNameA" (pOpenfilename As OPENFILENAME) As Long

Private Type OPENFILENAME
lStructSize As Long '構造体のサイズ
hwndOwner As Long '親ウィンドウのハンドル
hInstance As Long 'モジュールのインスタンスハンドル
lpstrFilter As String 'VBのファイルパターン
lpstrCustomFilter As String 'カスタムフィルタ
nMaxCustFilter As Long '同バイト数
nFilterIndex As Long 'フィルタのインデックス
lpstrFile As String 'フルパス名を受取るバッファ
nMaxFile As Long '同バイト数
lpstrFileTitle As String 'ファイル名を受取るバッファ
nMaxFileTitle As Long '同バイト数
lpstrInitialDir As String '初期ディレクトリ名
lpstrTitle As String 'ダイアログボックスのキャプションタイトル
flags As Long '動作を指定する定数の組合せ
nFileOffset As Integer 'フルパス中のファイル名までのオフセット
nFileExtension As Integer '同 拡張子までのオフセット
lpstrDefExt As String 'デフォルトの拡張子
lCustData As Long 'フックプロシージャに渡すデータ
lpfnHook As Long 'フックプロシージャOFNHookprocへのポインタ
lpTemplateName As String 'テンプレートリソース名
End Type

Private Const OFN_HIDEREADONLY = &H4
Private Const OFN_OVERWRITEPROMPT = &H2
Private Const OFN_FILEMUSTEXIST = &H1000
Private Const OFN_PATHMUSTEXIST = &H800
Private Const OFN_EXPLORER = &H80000

'--------------------------------------
' ダイアロゴを表示(名前を付けて保存)
'--------------------------------------
Private Function FileSaveDialog(Optional folder As String = "C:\") As String
Dim tOpenFileName As OPENFILENAME
Dim lngRet As Long

With tOpenFileName
.lStructSize = Len(tOpenFileName)
.hwndOwner = Me.hWnd
.hInstance = 0
.lpstrFilter = "テキストファイル(*.txt)" & vbNullChar & "*.txt" _
& vbNullChar & "すべてのファイル(*.*)" & vbNullChar & "*.*"
.nFilterIndex = 1
.lpstrFile = strFileName & String$(256, Chr$(0))
.nMaxFile = 256
.lpstrFileTitle = String$(256, Chr$(0))
.nMaxFileTitle = 256
.lpstrInitialDir = folder
.lpstrTitle = "名前を付けて保存"
.flags = OFN_PATHMUSTEXIST Or OFN_FILEMUSTEXIST Or _
OFN_HIDEREADONLY Or OFN_OVERWRITEPROMPT
End With

lngRet = GetSaveFileName(tOpenFileName)
FileSaveDialog = Left$(tOpenFileName.lpstrFile, _
InStr(tOpenFileName.lpstrFile, vbNullChar) - 1)
End Function
=============================================================
呼び出しは fileName = FileSaveDialog("デフォルトフォルダ")
デフォルトフォルダが指定されなかったときは C:\ とみなします。
戻り値は fileName に指定ファイルの FullPath が返されます。
キャンセルした場合は空文字が返ります。
以上お試しください。
APIの詳細は GetSaveFileName でネット検索してみてください。

No.2です。
便利な使い方があるんですね。知りませんでした!

せっかくやる気を出しているので、以下のAPIでダイアログを表示したらどうでしょうか(ネットで調べたものを多少修正しました)。自分の使いやすいように修正してください。このまま使用するなら該当するフォームにそのまま貼り付けてください(=== の間)。
=============================================================
Private Declare Function GetSaveFileName Lib "comdlg32.dll" _
Alias "GetSaveFileNameA" (pOpenfilename As OPENF...続きを読む

QACCESS VBAでファイルを開くダイアログを表示させたい

ACCESSのフォームからコマンドボタンを押すことで、
ファイル開くダイアログが表示されて、
そこでファイル名をクリック指定することで、
実際にそのファイルがインポートされるように仕組みを作りたいと思っています。

VBAでどう記述するのでしょうか?
類似ケースの質問内容も調べましたがピンと来るものがありませんでした。
ご存知の方、教えて頂けるとありがたいです。よろしくお願いします。

Aベストアンサー

CSVファイルの場合ですが、こちらを参考に。
http://www.accessclub.jp/bbs3/0364/superbeg109189.html

Excelの場合は
DoCmd.TransferSpreadsheet acImport, 8, "テーブル名", strFileName, True, ""
のようになります。
詳しくは、TransferSpreadsheet をヘルプで調べてください。
マクロの「ワークシート変換」を 作成し
「マクロを Visual Basic に変換」で
VBA のコードにしてみるのも良いでしょう。

QAccessのRefresh・Requery・Repaintの違い

Requeryはもう一度ソースレコード(テーブル)を読み込むようです。このとき、テーブルの先頭レコードに移動してしまいます。
Refreshは最新のレコード(テーブル)を再表示するような気がします。レコードの移動は起こらない気がします。
Repaintは、VBAでキャプションなどを変更したとき使っています。
でも、よくわかっていません。
どんなときにどんなメソッドを使えばいいのでしょうか?
詳しい方、よろしくお願いいたします。

Aベストアンサー

たびたびすみません。
調べてたらこんなのがでてきました。
http://www.nurs.or.jp/~ppoy/access/access/acF007.html

参考URL:http://www.nurs.or.jp/~ppoy/access/access/acF007.html


人気Q&Aランキング