回答編集履歴

4

推敲

2023/12/23 15:02

投稿

sazi
sazi

スコア25430

test CHANGED
@@ -8,7 +8,7 @@
8
8
  Public Function MySplit(exp, dlmt, pos)
9
9
  Dim strArry() As String
10
10
  strArry = Split(exp, dlmt)
11
- If UBound(MyArry) >= pos Then MySplit = strArry(pos)
11
+ If UBound(strArry) >= pos Then MySplit = strArry(pos)
12
12
  End Function
13
13
  ```
14
14
  ```SQL

3

推敲

2023/12/23 15:02

投稿

sazi
sazi

スコア25430

test CHANGED
@@ -6,9 +6,9 @@
6
6
  以下参考。
7
7
  ```VBA
8
8
  Public Function MySplit(exp, dlmt, pos)
9
- Dim MyArry() As String
9
+ Dim strArry() As String
10
- MyArry = Split(exp, dlmt)
10
+ strArry = Split(exp, dlmt)
11
- If UBound(MyArry) >= pos Then MySplit = MyArry(pos)
11
+ If UBound(MyArry) >= pos Then MySplit = strArry(pos)
12
12
  End Function
13
13
  ```
14
14
  ```SQL

2

推敲

2023/12/22 02:37

投稿

sazi
sazi

スコア25430

test CHANGED
@@ -1,4 +1,4 @@
1
- 先ず、クエリーで複数行にするには、分割したそれぞれをunion結合します。
1
+ 先ず、クエリーで複数行にするには、unionを使用て疑似的に正規化します。
2
2
  但し、union結合する回数は固定にするしかありません。
3
3
  次に、分割するには、instr()やmid()などのクエリーで使用できる関数を組み合わせて使用する方法もありますが記述が冗長になります。
4
4
  冗長さを閉じ込める為にユーザ関数を作成し、それを使用するのが良いかと思います。

1

追記

2023/12/22 02:36

投稿

sazi
sazi

スコア25430

test CHANGED
@@ -2,6 +2,7 @@
2
2
  但し、union結合する回数は固定にするしかありません。
3
3
  次に、分割するには、instr()やmid()などのクエリーで使用できる関数を組み合わせて使用する方法もありますが記述が冗長になります。
4
4
  冗長さを閉じ込める為にユーザ関数を作成し、それを使用するのが良いかと思います。
5
+ ※ユーザー関数であれば、クエリーで使用できない関数も使用できますし。
5
6
  以下参考。
6
7
  ```VBA
7
8
  Public Function MySplit(exp, dlmt, pos)