복붙노트

[SQL] 어떻게 워드 VBA SQL 쿼리에 따옴표를 다루는?

SQL

어떻게 워드 VBA SQL 쿼리에 따옴표를 다루는?

나는 드롭 다운에서 고객 이름을 얻고 있지만, 이름이 따옴표를 포함 할 수 있습니다 (예 : 아담의 고기를) 엑셀 스프레드 시트를 조회하기 위해 그 값을 사용합니다. 이 내 응용 프로그램을 중단하는 방법 나는 작은 따옴표를 포함하는 변수 쿼리를 만들 수 있죠?

Private Sub cboCompany_Change()
            Dim customerName As String
            customerName = cboCompany.Value

rsT.Open "SELECT Customer, Postcode, Address1, Address2, State, Country FROM Customers WHERE  Customer = '" & customerName & "'", cn, adOpenStatic

해결법

  1. ==============================

    1.어디 하나가 다른 탈출하고 하나가 발생합니다, 두 개의 작은 따옴표 ''를 지정, 같은 대체하려고 :

    어디 하나가 다른 탈출하고 하나가 발생합니다, 두 개의 작은 따옴표 ''를 지정, 같은 대체하려고 :

    customerName = Replace(customerName, "'", "''")
    
  2. ==============================

    2.이 잎은 넓은는 SQL 주입 공격을 엽니 다. 나는이 같은 매개 변수화 쿼리에이를 변경하는 것이 좋습니다 것입니다

    이 잎은 넓은는 SQL 주입 공격을 엽니 다. 나는이 같은 매개 변수화 쿼리에이를 변경하는 것이 좋습니다 것입니다

    Dim cmd as NEW ADODB.Command
    
    With cmd
     .CommandText=”SELECT foo from tblBar where foo=?”
     .Parameters.Append .CreateParameter("@foo", adVarChar, adParamInput, 50, “What ever you want”)
     .ActiveConnection=dbCon
     .CommandType=adCmdText
    End With
    
    Set rst=cmd.execute
    
  3. from https://stackoverflow.com/questions/3975042/how-to-deal-with-single-quote-in-word-vba-sql-query by cc-by-sa and MIT license