人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

アクセス初心者です。クエリに関してです。

あるテーブルの、あるカラムにある、「:」で区切られた文字列を
:で分けるクエリを組んでいます。

【クエリ】
SELECT MySplit(tablevalue,":",0) AS 式1, MySplit(tablevalue,":",1) AS 式2, MySplit(tablevalue,":",2) AS 式3, MySplit(tablevalue,":",3) AS 式4
FROM Shouhin;

【Module1】
Function MySplit(t As String, s As String, i As Integer) As String
Dim sArray() As String
sArray = Split(t, s)
If i <= UBound(sArray) Then
MySplit = sArray(i)
Else
MySplit = ""
End If
End Function

このクエリは成功しておりますが、実はこのクエリの結果に、テーブルの中の
他のカラムの文字列を、そのまま表示させたく、デザインビューで
普通に追加すると、『集計関数の一部として指定された式'?'を含んでいないクエ
リを実行しようとしました』となってしまい、エラーとなってしまいます。
なぜでしょうか?
また、解決策をお教えください。

よろしく、お願いいたします。

●質問者: martytaka
●カテゴリ:コンピュータ 学習・教育
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● kodairabase
●0ポイント

クエリ式にはクエリで追加してください。
デザインビューで追加するとおかしなことになります。


2 ● うぃんど
●100ポイント ベストアンサー

クエリビューに切り替えると、Accessが余計なおせっかいで、
また勝手にいらない文字を追加してしまったりするので、
引き続きSQLビューで書いてください

以下、横に長くなるので適当に改行してます
保存するとAccessがおせっかいにも横一列にしてしまいますが、
それは気にする必要ないです

さて、もっとも手抜きな例(分割前のtablevalueまで出力されちゃいます)

SELECT *
 , MySplit(tablevalue,":",0) AS1
 , MySplit(tablevalue,":",1) AS2
 , MySplit(tablevalue,":",2) AS3
 , MySplit(tablevalue,":",3) AS4
FROM Shouhin;

必要な列を指定する例(必要なカラムの名前を適当にいれてやれば良いです)

SELECT カラム名1
 , カラム名2
 , MySplit(tablevalue,":",0) AS1
 , MySplit(tablevalue,":",1) AS2
 , MySplit(tablevalue,":",2) AS3
 , MySplit(tablevalue,":",3) AS4
 , カラム名3
 , カラム名4
FROM Shouhin;

martytakaさんのコメント
すげえ!!! ありがとうございました!! 本当に感謝です!
関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ