Добавьте содержание ячейки к запросу VBA

Я хотел бы обновить свой код для включения содержания ячейки, S3. Прямо сейчас ячейка имеет значение 'Теста, Тестирование, Протестированное' и соответствующая часть запроса, похоже на это:

SELECT * FROM dbo.Total WHERE ID = " & TextBox1.Text & " And Source IN (What do I put in here?)

Ваша справка очень ценится

1
задан Community 9 July 2018 в 19:34
поделиться

2 ответа

Как насчет этого?

Dim someSQL As String
someSQL = "SELECT * FROM dbo.Total WHERE ID = " & TextBox1.Text & _
          " And Source IN (" & Sheet1.Cells(3, 19) & ")"

При необходимости замените имя листа на «Лист1».

1
ответ дан 3 September 2019 в 00:30
поделиться

Вам нужно будет проанализировать, обрезать, экранировать и заключить в кавычки каждое из трех значений в ячейке, чтобы получить:

SELECT * FROM dbo.Total WHERE ID = 'bob''s' And Source IN ('Test','Testing','Tested')

Использование

Dim someSQL As String
someSQL = "SELECT * FROM dbo.Total WHERE ID = '" & escape(TextBox1.Text) & "' And Source IN (" & splitCell("s3") & ")"

Function splitCell(addr As String) As String
  Dim v() As String
  Dim i As Long
  v = Split(Range(addr).Value, ",")
  For i = 0 To UBound(v)
      v(i) = "'" & escape(trim$(v(i))) & "'"
  Next
  splitCell = Join(v, ",")
  If (Len(splitCell) = 0) Then splitCell = "''"
End Function

Function escape(sIn As String) As String
  //you should use a prepared statement instead
  escape = Replace$(sIn, "'", "''")
End Function
1
ответ дан 3 September 2019 в 00:30
поделиться
Другие вопросы по тегам:

Похожие вопросы: