質問編集履歴
1
質問の内容を変えました。
test
CHANGED
File without changes
|
test
CHANGED
@@ -2,39 +2,27 @@
|
|
2
2
|
|
3
3
|
カードの番号を入力してデータを検索してレコードを重複しないように
|
4
4
|
|
5
|
-
取得するシステムを作りたいのですがカード番号はデータ的は16桁ながらカードそのものに記載された番号は6桁のみで
|
5
|
+
取得するシステムを作りたいのですがカード番号はデータ的は16桁ながらカードそのものに記載された番号は6桁のみです。ややこしくて申し訳ないのですが
|
6
6
|
|
7
7
|
|
8
8
|
|
9
|
-
・1~8桁目は3種類のカードそれぞれの固有の番号で
|
10
|
-
|
11
|
-
|
9
|
+
・1~8桁目は会社のコードで00700000か00710000の2択です。
|
12
|
-
|
13
|
-
カードB:00800000または00810000
|
14
|
-
|
15
|
-
カードC:00600000または00610000
|
16
|
-
|
17
|
-
というものです。
|
18
10
|
|
19
11
|
|
20
12
|
|
21
|
-
・9~14桁目はカードに記載されている個別番号で、
|
13
|
+
・9~14桁目はカードに記載されている個別番号で、重複はしません
|
22
14
|
|
23
15
|
|
24
16
|
|
25
|
-
15,16桁目はチェックデジットのコードで
|
17
|
+
・15,16桁目はチェックデジットのコードです。
|
26
18
|
|
27
19
|
|
28
20
|
|
29
|
-
|
21
|
+
カード記載の9~14桁目を入力するだけでレコードを取得できるようにしたく、ビジュアルスタジオにVBで以下のコードを組みました。DBMSはSQLServerです。
|
30
22
|
|
31
23
|
|
32
24
|
|
33
|
-
カードの種類をラジオボタンで選択してカード記載の番号(=9~14桁目)を入力すればレコードを取得できるようにしたいのですが
|
34
|
-
|
35
|
-
```ここに言語を入力
|
36
|
-
|
37
|
-
Private Function CARD_CHK(ByVal pSYAINCD As String)
|
25
|
+
```Private Function CARD_CHK(ByVal pSYAINCD As String)
|
38
26
|
|
39
27
|
Try
|
40
28
|
|
@@ -70,52 +58,32 @@
|
|
70
58
|
|
71
59
|
|
72
60
|
|
73
|
-
|
61
|
+
cmd.CommandText = cmd.CommandText.Replace("$CARDNO$", pSYAINCD)
|
74
62
|
|
75
|
-
|
63
|
+
(文字数の関係で以下略)
|
76
64
|
|
77
|
-
Using da As New SqlDataAdapter(cmd)
|
78
|
-
|
79
|
-
da.Fill(loc_dataset)
|
80
|
-
|
81
|
-
da.Dispose()
|
82
|
-
|
83
|
-
End Using
|
84
|
-
|
85
|
-
cmd.Dispose()
|
86
|
-
|
87
|
-
End Using
|
88
|
-
|
89
|
-
conn.Close()
|
90
|
-
|
91
|
-
conn.Dispose()
|
92
|
-
|
93
|
-
End Using
|
94
|
-
|
95
|
-
If loc_dataset.Tables(0).Rows.Count = 1 Then
|
96
|
-
|
97
|
-
SYAINCD_CHK = True
|
98
|
-
|
99
|
-
|
65
|
+
```
|
100
|
-
|
101
|
-
SYAINCD_CHK = False
|
102
66
|
|
103
67
|
|
104
68
|
|
69
|
+
このコードで起動し、試しに0070000018000390というカードのデータを取得しようとカード記載の6桁180003を入力したところ、データが見つからないというエラー表示が出ました。しかし、カードの16桁すべてを入力したところデータの取得ができました。
|
70
|
+
|
71
|
+
SQLServerにて
|
72
|
+
|
73
|
+
```
|
74
|
+
|
75
|
+
SELECT [CARDNO]
|
76
|
+
|
77
|
+
,[KINGAKU]
|
78
|
+
|
105
|
-
|
79
|
+
,[NAME]
|
80
|
+
|
81
|
+
FROM [PREPAID].[dbo].[ZANDAKAMST]
|
82
|
+
|
83
|
+
where CARDNO LIKE '%'+'180003'+'%'"
|
106
84
|
|
107
85
|
|
108
86
|
|
109
|
-
Catch ex As Exception
|
110
|
-
|
111
|
-
SYAINCD_CHK = False
|
112
|
-
|
113
|
-
MsgBox(ex.Message)
|
114
|
-
|
115
|
-
MsgBox(ex.Source)
|
116
|
-
|
117
|
-
End Try
|
118
|
-
|
119
87
|
```
|
120
88
|
|
121
|
-
|
89
|
+
と入力し実行してもデータの取得ができたのでwhere CARDNO LIKE '%'+'$CARNO$'+'%'の部分がまずかったのかと思うのですがどうすればよいのでしょうか?
|