複数の行から1行と1つのField-MS Access 2013への文字列を組み合わせる
複数行の文字文字データを1つのフィールドと1行のデータに組み合わせることができますか?たとえば、次の点をご覧ください.
1国連合国
アメリカ2 アメリカ、イタリア、ドイツ
3イタリア
4ドイツ
返信リスト(回答:22)
こんにちはジョニー、
これは非常にリードであり、これを行うためにさまざまなアクセス専門家によって書かれたいくつかの機能があります.これが私が正常に使用したものです.
https://allenbrowne.com/func-concat.html.
Allen Browneは元アクセスMVPであり、彼の記事のいくつかは標準と見なされます.複数のレコードにわたって連結を検索すると、同じ機能を実行する他の機能が見つかるはずです.
別のアクセスMVPはこの機能を提供します:
https://thedbguy.blogspot.com/2016/02/SIMPLECSV....
応答16# ->にスキップ20 #JohnnyDこれらのどちらかを使いたいですが、VBAで書く方法がわかりません.私のフィールド名がどこに行く必要があるのかわかりません.table名、データベース名、そのようなものは何でも.私はコードが問題を解決するためにどのように機能するかわからない、そして私は慣れていません
構文のいずれかで.
応答20# ->にスキップ10 #Scottgeあなたが欲しいものをやる唯一の方法は、私がリンクしたもののような機能を持っています.それで、あなたはそれらの使い方を学ぶ方法を学ぶ必要があります.
いずれの場合も、関数はグローバルモジュールに入ります.Visual Basic Environment(VBE)を開き、新しいモジュールを追加することを選択します.次にコードをコピーしてモジュールに貼り付けます.
コードを使用するには、関数を使用してクエリに列を追加します. 国:連結(「国」、「表名」、「Group=」&[CompanyID])
応答10# ->にスキップ9 #JohnnyDだから私は「エラー28:不明」を得ていますか?その修復方法はわかりません.このフィールドにすべての値が欲しいので、私のコードはこのようになります.
国:連結( "国"、登録済み ")
それは登録済みの照会の国のすべての国の出力を与えますが、私が使用したVBAコードからポップアップエラーメッセージが表示されます. リンク:func concat.
あなたが知っていればこのエラーを解決するにはどうすればいいですか?
応答9# ->にスキップ7 #Scottgeクエリの完全なSQLを表示できますか?また、国のリストを望んでいるが、グループ化値ではないように見えます.あれは正しいですか.? RegistrationsDueクエリのTJHE SQLとは何ですか?
応答6# ->にスキップ1 #Scottgeわかりました、私は誤解があるかもしれません.一般的に一部のグループ化によってリストを取得したいと思うでしょう.たとえば、特定の国をカバーするセールスマンがあり、各セールスマンがカバーしている国のリストが必要な場合があります.しかし、あなたはグループ化フィールドを持っていないので
関数が失敗しているのはなぜ;
私が推薦することは、国の列を生産するための機能です.このようなもの:
データベースとしてのDIM DB、RECORDSETとしてのRS
薄暗いSTRCOUNTRIESとして文字列として
db= currentdb()
を設定します set rs= db.openrecordset( "queryname")
RS.MoveFirst
rs.eofではありませんが
strcountries= strcountries&rs.fields( "国")&"、" "" rs.movenext
ループ
strcountries= left(strcountries、len(strcountries)-2)
debug.print strcountries
これにより、リストと一緒にやりたいことを明確にしていないため、これはVBEのイミディエイトwindows にリストを印刷します.
他のポイント.グループがクエリごとに必要ありません.あなたのクエリは単に単純にするべきです:
登録から明確な国を選択
expirationDate国別注文
応答6# ->にスキップ5 #dhookomクエリを参照するクエリから関数を呼び出す理由を中心に、頭を包むのに苦労しています."registrationsdue"はクエリの名前であり、あなたはそれをconcatreletated()関数から呼び出しています.私はそれが合法的な、あるいは何でさえもよく私はよくわかりません
あなたが望む.一意の国名だけで別のクエリを作成し、それをconcatrelet()関数で使用できますか?あなたの最初の投稿に基づいて、この結果は次のようになります:
1国連合国
アメリカ2 アメリカ、イタリア、ドイツ
イタリア3. アメリカ、イタリア、ドイツ
4ドイツアメリカ、イタリア、ドイツ
応答5# ->にスキップ4 #JohnnyDええ、それは私にその答えを与えます.それは私に最小のエラーを与えた唯一の表現でしたので、私はそれと一緒に行きました.私は新しいクエリを開始してそれをすることを試みることができます.
応答4# ->にスキップ3 #KenSher[私の公開データベース]フォルダにCONCAT.ZIPで代替連結機能があります.
https://onedrive.live.com/?cid=44cc60d7fea42912&id=44cc60d7fea42912年169.
以前のversionのアクセスを使用している場合、ボタンなどのフォームオブジェクトの色が誤って表示され、それに応じてフォームデザインを修正する必要があることに注意してください.
リンクを開くのが難しい場合は、リンクをコピーし(リンクの場所ではなく)、それをブラウザのアドレスバーに貼り付けます.
この小さなデモファイルは、ADO RecordSetオブジェクトの非常に効率的なGetStringメソッドを使用するGetList関数の使用を示しています.これは北風データを使用して報告書に示されています.基礎となるクエリと機能の説明
レポートヘッダーに呼ばれます.最終結果は、現在レコードセットをループすることで現在試みられている方法と同じですが、大きなレコードセットでより効率的です.
同じファイルに、値をレポートに直接連結できる方法もあります.これにより、関数を呼び出すことができます.再度レポートヘッダーでこれがどのように行われるかについての説明がありますが、レポートのコードを勉強する必要があります.
それがどのように機能するかを完全に理解するためのモジュールであるので、関数呼び出しは回避されている間、それはVBAにいくつかの親しみやすさを必要とします.
応答9# ->にスキップ8 #dhookom登録の左側に二重引用符がありません.試してみてください:
国:連結(「国」、「登録」)
これを簡単に簡単にテストできます.Ctrl + Gを押して
に入る?連結(「国」、「登録」)
応答10# ->にスキップ11 #dhookom私はVBAの要件に完全に同意し、別の解決策に向けていることを悩ませません.モジュールに「modstringstuff」のような名前を保存して名前を付けることをお勧めします.モジュールに関数の名前と同じように名前を付けると、そうではありません.
作業.
こんにちはジョニー、
私はあなたのデータのスクリーンショットを見る必要があります.
しかし、あなたが与えた例では、このタイプの数式を単に使用することができます.
あなたのデータはA2、A3とA4にあります.
= A2&"、" A3&"、" A4
あなたはVBAを使わなければなりません、参照してください https://allenbrowne.com/func-concat.html.
関連質問
- Outlook 2013は、Gmail IMAPアカウントのパスワードを保存しません
- Outlook Freezingの問題...そして今やYahoo PopアカウントからのEメールのフェッチを中止しました...?
- 私のOffice Productキーにリンクされているアカウントを忘れました.
- Office365
- ソフトウェアの回復-Office 2013
- マイクロソフトアカウントをMicrosoft Officeに関連付ける方法-オンラインではない店舗からMicrosoft Office DVDを手に入れました.
- Excel 2013.ワークブックでアイテムがありません
- Word 2013の編集形状を制限する
- Microsoft Office Appsを使用できません
- 2013 Office Proのインストール新しいハードドライバが認証されないと言う