- ベストアンサー
ACCESSのクエリを使用してデータ更新したい
- Office2010のAccessを使用して、FileAとFileBをマッチングさせてデータを更新する方法について教えてください。
- FileAとFileBはテキストデータで、Keyと金額の2項目を更新します。更新後のデータはFileCとして出力します。
- 初心者向けの解説記事があると助かります。図解もあればわかりやすいです。
- みんなの回答 (17)
- 専門家の回答
質問者が選んだベストアンサー
関連するQ&A
- ファイルの結合
UNIX上で下記のようなfileA、fileBから fileA aaa,aaa,222 aaa,bbb,111 aaa,ccc,333 fileB aaa,aaa,111 aaa,bbb,222 aaa,ccc,333 aaa,ddd,999 下記のようなfileCを作ろうとしています。 fileC aaa,aaa,222 aaa,bbb,111 aaa,ccc,333 aaa,ddd,999 そこで、以下のように一列目と2列目をキーにして、sortすることにしました。 cat fileA fileB | sort -u -k1,2 -t, > fileC すると、fileCは下記のようになりました。(一行目の3列目が222ではなく、111になってしまいました) fileC aaa,aaa,111 aaa,bbb,222 aaa,ccc,333 aaa,ddd,999 キー項目以外はfileAを優先させたいのですが、なにか良い方法はないでしょうか?
- ベストアンサー
- その他(OS)
- findstrで複数ファイルを検索するとき
findstr "aa bb" fileA.txt fileB.txt とすると、aa bbがそれぞれfileA.txt fileB.txtに適当に入ってるとき、結果は fileA.txt:aa fileB.txt:bb fileB.txt:bb fileA.txt:aa などと、検索結果の各行の初めにファイル名が出てきてしまいます。 このファイル名を出さないようにすることって出来ませんか。この場合、 aa bb bb aa とだけ出てきたらいいのですが。 /Mというオプションはファイル名だけを出すもので、この逆、ファイル名を消す、というのが欲しいのですが。 findstr以外のコマンドでもいいです。 ここで使っているのはwindows用のGNU utilities for Win32です。
- ベストアンサー
- その他(プログラミング・開発)
- Access データの更新方法
Access2003を使用しています。 テキスト型5バイトの項目があり、そこに頭から 1 2 ・ 10 11 のようにデータが登録されています。 これを、以下のように変更したいのですが、一括で更新する方法は あるでしょうか? 001 002 010 011 (必ず3桁です。それ以上になることはありません) よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- VBAを実行するとエクセルが落ちる
同一フォルダ内にあるCSVデータを一つのエクセルにワークブックにまとめるため CSVデータを開いて、各シートに値を貼り付けるVBAを作成しました デバックモードで1行毎に実行するとエクセルが落ちることはありませんが 普通に実行するとエクセルが閉じてしまいます 原因が分からないためご指摘いただけると幸いです Win7のOffice2013です。 Sub contents() Sheets("01").Select Sheets("01").Cells.Select Selection.ClearContents Dim ShA As Worksheet Dim FileA As String Set ShA = ThisWorkbook.Sheets("01") ChDir "C:\Users\Public\Documents" FileA = "C:\Users\Public\Documents\01.csv" If FileA <> "False" Then Workbooks.OpenText Filename:=FileA, StartRow:=1, DataType:=xlDelimited, TextQualifier:=xlTextQualifierNone, Comma:=True ActiveSheet.Cells.CurrentRegion.Copy Destination:=ShA.Range("A1") ActiveWorkbook.Close False End If Set ShA = Nothing Sheets("02").Select Sheets("02").Cells.Select Selection.ClearContents Dim ShB As Worksheet Dim FileB As String Set ShB = ThisWorkbook.Sheets("02") ChDir "C:\Users\Public\Documents" FileB = "C:\Users\Public\Documents\02.csv" If FileB <> "False" Then Workbooks.OpenText Filename:=FileB, StartRow:=1, DataType:=xlDelimited, TextQualifier:=xlTextQualifierNone, Comma:=True ActiveSheet.Cells.CurrentRegion.Copy Destination:=ShB.Range("A1") ActiveWorkbook.Close False End If Set ShB = Nothing Sheets("03").Select Sheets("03").Cells.Select Selection.ClearContents Dim ShC As Worksheet Dim FileC As String Set ShC = ThisWorkbook.Sheets("03") ChDir "C:\Users\Public\Documents" FileC = "C:\Users\Public\Documents\03.csv" If FileC <> "False" Then Workbooks.OpenText Filename:=FileC, StartRow:=1, DataType:=xlDelimited, TextQualifier:=xlTextQualifierNone, Comma:=True ActiveSheet.Cells.CurrentRegion.Copy Destination:=ShC.Range("A1") ActiveWorkbook.Close False End If Set ShC = Nothing End Sub
- ベストアンサー
- Excel(エクセル)
- テキストデータをバイナリデータに変換したい
テキストファイルに以下のデータがあるとします。 テキストデータの中身、 「 000E6D4181AA,1234567890ABCDEF 0123456789AB,0100000000000000 050505AAAAAA,0200000000000000 070707BBBBBB,0300000000000000 012345CCCCCC,0400000000000000 cdef01DDDDDD,0500000000000000 ・ ・ ・ 」 12桁の数値(16進数)と16桁の数値(16進数)を「,」で区切ります。1行の終端は改行しています。 このテキストファイルにあるデータを以下のバイナリ形式に変換させたいのです。バイナリ形式の各行の16バイト目は、テキストデータにはデータがないので、「00」とします。「,」で区切ったバイナリ形式は「2C」になると思います。 テキストデータの左上から順に「00」は以下の、左上から順の「00」に対応します。 バイナリデータの中身、 「 00 0E 6D 41 81 AA 2C 12 34 56 78 90 AB CD EF 00 01 23 45 67 89 AB 2C 01 00 00 00 00 00 00 00 00 05 05 05 AA AA AA 2C 02 00 00 00 00 00 00 00 00 07 07 07 BB BB BB 2C 03 00 00 00 00 00 00 00 00 01 23 45 CC CC CC 2C 04 00 00 00 00 00 00 00 00 CD EF 01 DD DD DD 2C 05 00 00 00 00 00 00 00 00 ・ ・ ・ 」 ソースコードでの例、 テキストデータ1行目の1つ目の「,」までのデータ「000E6D4181AA」を、メモリ領域に読み込む。2桁の数値を1バイトで格納する。 つまり、 char buf[6]とすると、 buf[0]=0xAA buf[1]=0x81 buf[2]=0x41 buf[3]=0x6D buf[4]=0x0E buf[5]=0x00 とこのようにメモリに格納したいのです。 格納するバイトオーダーはリトルエンディアン方式とします。 以上で、質問を終わりますが、質問が上手くできていないと思いますので、説明に不備があるかもしれません。その時はお手数ですが、連絡下さい。
- 締切済み
- C・C++・C#
- テキストボックスの3桁
よろしくお願いします。 テキストボックスの3桁置きにカンマを入れるために AA.Text = Format(AA.Text, "#,###")と、したのですが 123.456と表示されます。 これを 123,456と表示されるようにする方法を教えてください。
- ベストアンサー
- その他([技術者向] コンピューター)
- アクセスでデータを集計するには
例として、下記のデータテーブルを受け取りました。 テーブル1 ID 名前 項目 値 01 AA 住所 ○○ 01 AA 電話 ○× 01 AA 月給 ○△円(テキスト) 01 AA 手当 ○□円(テキスト) 02 BB 住所 □□ 02 BB 電話 □× 02 BB 月給 □△円(テキスト) 02 BB 手当 □○円(テキスト) 03 CC 住所 ×☆ 03 CC 電話 ×○ 03 CC 月給 ×△円(テキスト) 03 CC 手当 ×□円(テキスト) 以下続く 上記表を、下記表 テーブル2 ID 名前 住所 電話 月給 手当 01 AA ○○ ○× ○△(数値) ○□(数値) 02 BB □□ □× □△(数値) □○(数値) 03 CC ×☆ ×○ ×△(数値) ×□(数値) 以下続く のように編集された表を新たに作成したいのですが、どのようにしたらよろしいのでしょうか(質問1)。 また、テーブル2から、月給+手当が□△以上の人のIDと名前を抽出できるようにするには、どのような操作が必要なのでしょうか(質問2)。 データはテーブル1の形式で定期的に送られて来た上、データは全てテキスト形式故、テーブル2の形式に再編集したテーブルがあった方がいいと思いました。 アクセスは今まで使ったことがありません。 恐らくご回答の解説が長くなってしまうでしょうから、作り方の概要と流れだけでも構いません。もちろん詳細にご回答賜れば誠に幸いです。 以上、よろしくご回答のほど、お願い申し上げます。
- ベストアンサー
- オフィス系ソフト
- カンマ区切りのデータを処理する方法
よろしくお願いします。 vb6.0 + oracle9i(oo4o)で開発しています。 元データの中には、カンマ区切り形式で全角・半角・ブランクありの可変長です。(テキストデータではありません) 例えば、 111bb,22222,333333,44bb 11,234bb,33bb,44 見たいなデータです。 カンマの数は変わりませんし、各項目自体にカンマはありえません。 この各項目を個々に取り込んで処理したいのですが... MID関数(MID$,MIDB)など色々試してみるのですが 対応しきれなくなってしまいました。 各項目に対してTRIMをかけて処理をしたいのですが、 良い方法はあるのでしょうか? カンマ間を一つの項目として判断でき、 TRIMがかけれれば一番よいのですが... 文字を一文字ずつ読んでいって、カンマを判断するしかないのでしょうか?
- ベストアンサー
- Visual Basic
- アクセスの更新クエリをフォームで
こんにちは、どなたかよろしくお願いします。 テーブルに100,000件位の膨大なデータがあり、この中から、ある範囲を指定して、そのデータの番号だけを変更したいのです。 基本的に更新クエリを用いると思うのですが、できればフォームからマクロなどを用いて自動化させたいのですが、どのようにしたら良いのでしょうか?エクセルならコピーペーストで簡単にできるのですが、エクセルにエクスポートすると溢れる量です。 データリストは下記のような感じで、10万件あるのです。 番号 日付 商品名 1234 7/1 あ 1234 7/2 あ 1234 7/2 い 1234 7/2 う 1234 7/3 う 1234 7/3 あ 1234 7/3 う 商品の「あ」とか「い」は参考までに記しました。特に関係ありません。 ここでフォームにテキストボックスを4つ作成し、2つに変更前(1234)の番号と変更後(5678)の番号を、残り2つに6/15、6/30と入力し、コマンドボタンをクリックすると、6/15~6/30までの番号が1234から5678に変更するようにしたいのです。 時には6/20~6/30という場合もありますが、飛び石になることはありません。 どうかよろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- access adoのトランザクション
access2003でSQLServer2008へのリンクテーブルを作成し、 vbaでadoを使ってデータ更新処理をしようとしています。 以下のように記述していますが、 実行後、BやCのテーブルが開かなくなります。 (正確にはインサートしたデータが表示されるであろうページがロックされているような動きです。) また、その状態からAccessを一旦終了し、再度起動すると、データがインサートされていない状態です。 コミットが効いてないように感じます。 こちら原因としてどんなことが考えられるでしょうか? ちなみにDAOで動かしても同様でした。 宜しくお願い致します。 以下 コード============================ Set cn = CurrentProject.Connection Set rst = New ADODB.Recordset cn.BeginTrans rst.Open "select key from A", cn, adOpenForwardOnly, adLockReadOnly Do Until rst.EOF cne.Execute "insert into B ( aa, bb) select aa, bb from A where key = " & rst!key & " " cne.Execute "insert into C ( aa, bb) select aa, bb from A where key = " & rst!key & " " rst.MoveNext Loop rst.Close cn.CommitTrans cn.Close set rst = Nothing set cn = Nothing
- 締切済み
- Visual Basic
- VersaPro J(PC-VKT25FBGS3R3)で作成したリカバリメディア(USBメモリ)を使用してリカバリしようとするが、NECリカバリツールが表示されず問題が発生している。BIOSセットアップ画面でUSBを選択し、再起動後に「キーボードの選択」や「トラブルシューティング」と選択しても、NECリカバリツールが表示されない。代わりに表示される項目はスタートアップ修復やコマンドプロンプトなどであり、コンピュータ上にシステムイメージが見つからないというメッセージが表示される。
- VersaPro J(PC-VKT25FBGS3R3)のリカバリメディア(USBメモリ)を使用したリカバリの手順において、NECリカバリツールが正常に表示されない問題が発生している。BIOSセットアップ画面でUSBを選択し、再起動後に「キーボードの選択」や「トラブルシューティング」と選択しても、NECリカバリツールが表示されない。その代わりに表示される項目はスタートアップ修復やコマンドプロンプトなどであり、コンピュータ上にシステムイメージが見つからないというエラーメッセージが表示される。
- VersaPro J(PC-VKT25FBGS3R3)で作成したリカバリメディア(USBメモリ)を使用してリカバリを試みる際に、NECリカバリツールが表示されず問題が発生している。BIOSセットアップ画面でUSBを選択し、再起動後に「キーボードの選択」や「トラブルシューティング」と選択しても、NECリカバリツールが表示されない。その代わりに表示される項目はスタートアップ修復やコマンドプロンプトなどであり、コンピュータ上にシステムイメージが見つからない旨のメッセージが表示される。
お礼
本当に最後までお付き合いいただきありがとうございました。 とても感謝しています。