ms-access データベースに英数字を導入しようとすると問題が発生します。数字や日付はできるのですが、英数字だと問題ありそうで、
私が使用するコードは次のとおりです。
Dim adoCon
Dim strSQL
Set adoCon=Server.CreateObject("ADODB.Connection")
adoCon.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & Server.MapPath("basededades.mdb")
'Here I am getting all the values previously passed by a form.
stringEntrada=Request.Form("stringEntrada")
stringSortida=Request.Form("stringSortida")
valoridHabitaciolliure=Request.Form("valoridHabitaciolliure")
numeropersones=Request.Form("numeroPersones")
nom=Request.Form("nom")
dni=Request.Form("dni")
tlf=Request.Form("tlf")
mail=Request.Form("mail")
ciutat=Request.Form("ciutat")
tipusH=Request.Form("tipusH")
diaReserva=Request.Form("diaReserva")
mail、nom、ciutat、tipusH、dni、valoridHabitaciolliure は、テキスト入力フォームの英数字です。diaReserva、stringSortida、stringEntrada は、テキスト入力フォームからの日付です。tlf は整数変数です。
strSQL="INSERT INTO Reserva (dni,tlf,diaReserva,inici,fi,tipusHabitacio) VALUES ("&dni&","&tlf&",'"&diaReserva&"','"&stringEntrada&"','"&stringSortida&"'," "&tipusH&")"
adoCon.Execute(strSQL)
データベースに挿入された値を見ると、「diaReserva」や「stringSortida」などの日付変数と「tlf」などの数値変数が正しく挿入されていることがわかります。
日付変数を挿入するには、単純な ' を二重で囲んだ " を SQL クエリで使用します: '"&stringEntrada&"'
数値を挿入するには、「&tlf&」という double のみを使用します。
'"mail"' のような英数字を挿入しようとして単純な ' を使用しようとすると、エラーは発生しませんが、データベースは空白の値を記録します。
"mail" のように double を使用しようとすると、エラーが発生します。
問題なく英数字変数を挿入するにはどうすればよいですか?
お時間をいただきありがとうございます。下手な英語で申し訳ありません。