• 締切済み

入力禁止文字の設定方法について・・・VB?SQL?

初歩的な質問でしたらすみません。。。 VB6でSQLServer2000のDBを操作しています。 入力フォームの「名称」欄に「'」「,」半角のアポストロフィやカンマの入力をすると、 SQLのテーブルへ書き込み時にエラーとなってしまいます。 「名称」のため、半角の「'」「,」は禁止にして、全角の「’」「,」は入力可能にしたいです。全角半角の判別可能なのでしょうか? フォームで[登録]ボタンを押した時に「名称」欄に「'」「,」が含まれているかのチェックをしたいのですが、 「'」「,」文字をどの様に記述してチェックをすればよろしいのでしょうか。 どなたかご存知の方ご教授いただけたらと思い質問させていただきました。 どうかよろしくお願いいたしますm(_ _)m

みんなの回答

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.3

入力受付後、その名称の文字列の中の、問題の半角記号を、全角に置換(Replace)してしまえばどうですか。

回答No.2

んと、エラーになる・ならないは横に置いといて。 そもそも「名称」という欄に入る値として半角の「'」や「,」は業務ルール上、正当ですか? それとも不正ですか? もし「エラーになるから禁止文字にしたい」というのであれば、登録の方法を変えれば禁止にしなくて済みます。 恐らくプログラムの中で動的に「UPDATE ~」なり「INSERT ~」の SQL 文字列を完全に組み立てているのでしょうが、そのやり方を変更すれば先の半角文字を登録に使用することが可能になります。 具体的には ADO の Command オブジェクトと Parameter オブジェクトを使って更新します。 これならば更新したい値は Parameter オブジェクトに格納されるので、「SQLインジェクション」と呼ばれる、SQL Server を攻撃するような呪文にも強くなります。 MSDN : ADO の Command オブジェクト http://msdn.microsoft.com/library/ja/jpado260/htm/mdobjcommand.asp MSDN : ADO の Parameter オブジェクト http://msdn.microsoft.com/library/ja/jpado260/htm/mdobjparameter.asp

  • fortranxp
  • ベストアンサー率26% (181/684)
回答No.1

こういうことでしょうか? Private Sub Command1_Click() Dim i As Integer i = InStr(Text1.Text, "'") If i > 0 Then MsgBox "「'」があります。" Text1.Text = "" Text1.SetFocus End Sub

関連するQ&A