ゴリラ向け動画サイト「ウホウホ動画」にありがちなこと

いつもお世話になります
エクセルがらアクセスにデーターを落としたのですが
もともとのデーターが
フィールド
品名 CD 品名 CD 品名 CD 品名 CD・・・・・
となっています
エクセルのデーターを加工せず
イベントプロチャジャーで
品名 CD
の縦長データーにするデーターをお教えください宜しくお願い致します

A 回答 (5件)

再びstorkです。


追加クエリです。

30列くらいなら列名を手で変えながら30回追加クエリをやったほうが早いでしょう。エクセルをインポートする際に列名を1、2、...と入力しやすい名前を付けておくとやりやすいでしょう。

VBAのループで上記のクエリを実行する手もありますが、手作業でやったほうが早いと思いますよ。

それぞれのクエリを保存しておけばあとで再実行も出来ます。
    • good
    • 0

1回だけのことですよね?


クエリで処理しましょう。

この回答への補足

有難うございます
クエリで処理というのは追加クエリのことですよね

補足日時:2003/06/20 21:35
    • good
    • 0

#1,2です。


まず、Excelデータのバックアップをとってください。
で、コピーのデータでやってみてください。

まず、見出しの行を削除して、データだけの状態にしてください。

そして、VBEの画面を開いてください。(Excelの画面でAlt+F11キー)
標準モジュールにしたのコードを貼り付け、修正してください。

1. 最大行数は「300行」、最大列数はコード・品名あわせて「30列」で一応設定してありますので、最初の方のConst行に設定してある数値を、実状にあわせて書き換えてください。

また、最大列数は、
品名とコードが対になっているはずですから、
当然ですが、必ず偶数になるようにしてください。

また、最大行数×(最大列数/2)が、
Excelの最大行数65536を越えないようにしてください。


2. シート名は一応Sheet1にもとのデータ、そして加工後のデータがSheet2に出力されるようにしてありますので、これもConst行を実情に応じて書き換えてください。


できあがったデータは、Sheet2に見出しなしの状態で出力されますので、これをアクセスにインポートしてください。


Option Explicit

Sub test()
'lngRow * lngColが,65536を越えないよう注意
Const lngRow As Long = 300 '最大の行数
Const lngCol As Long = 30 '最大の列数(偶数)
Const strSheet1 As String = "Sheet1" 'シート名(もとデータ)
Const strSheet2 As String = "Sheet2" 'シート名(加工データ)
Dim i As Long

'1列につなぐ
For i = 0 To Int(lngCol / 2) - 1
Sheets(strSheet1).Select
ActiveSheet.Range(Cells(1, i * 2 + 1), Cells(lngRow, i * 2 + 2)).Copy
Sheets(strSheet2).Cells(lngRow * i + 1, 1).PasteSpecial
Next i

'ソート
Sheets("Sheet2").Select
Columns("A:B").Select
Selection.Sort _
Key1:=Range("A1"), _
Order1:=xlAscending, _
Header:=xlNo, _
OrderCustom:=1, _
Orientation:=xlTopToBottom

End Sub
    • good
    • 0
この回答へのお礼

いろいろ有難うございました
何とかできそうです

お礼日時:2003/06/16 04:18

#1です。


そういうことですか。
基本的にExcelで加工してしまった方が、アクセスでどうにかしようとするより絶対楽だと思いますので、その方向で考えましょうか。

Excelにもマクロ(VBA)がありますので、その機能を使えば手作業の時のようにデータが違うということはないと思いますよ。

また質問になってしまいますが、以下の補足を願えますでしょうか。

1. Excelのデータは1行のデータですか?
2. 列は全部で何列あるのですか?
3. 「CD」はコードのことだと思いますが、数値でしょうか?文字でしょうか?
4. すべての品名に対してCDは入力されていますか?
5. Excelのデータの最初の行に、「品名 CD 品名 CD・・・」といった「見出し」の行はありますか?それとも、1行目から、入力されているのは「データ」だけでしょうか?

この回答への補足

いりいろすみません
1.Excelのデータは300行ほどあります
2.データーは最大で30列ほどあります(全てデーターが30列あるわけではありません
3.「CD」はコードのことで数値型です
4.すべての品名に対してCDを入力しています
5.Excelのデータの最初の行に、「品名 CD」の見出しはついています
以上どうか宜しくお願い致します
 

補足日時:2003/06/15 21:44
    • good
    • 0

>エクセルのデーターを加工せず



Access上で加工したいのでしょうか?
Excelのデータを加工してから取り込んだ方が簡単かと思いますが。こだわりがあるのでしょうか?


>イベントプロチャジャーで

イベントプロシージャのことでしょうか?
だとしたら何のイベントですか?
それともマクロのことをおっしゃっているのでしょうか?

この回答への補足

すみません
説明不足で
エクセルで加工しようとしたのですが
漏れがあったりデーターをかぶせて消したりとやっぱり
加工すると元データーとちっがてしまうのでイベントプロシージャ
で・・とおもったのですが。・・・よく考えたら
マクロですね。すみません
何かいい方法がありましたらお願い致します

補足日時:2003/06/15 19:07
    • good
    • 0

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

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