Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > MS Access > DFirst


Автор: kapbepucm 25.2.2008, 11:03
Чем возможно заменить конструкцию:
Код
Sub test()
  Dim a As String
  a = "OOO ""AAA"""
  MsgBox DFirst("Partner", "partners", "Partner=""" & a & """")
End Sub
где переменная a всегда будет содержать символ "

Добавлено через 3 минуты и 21 секунду
В таблице partners партнёр OOO "AAA", конечно, присутствует.

Автор: bopoha 25.2.2008, 11:36
Зачем ее заменять? Чем не устраивает?

Автор: kapbepucm 25.2.2008, 12:01
Цитата(bopoha @  25.2.2008,  11:36 Найти цитируемый пост)
Чем не устраивает?
Объясню. Допустим, в таблице partners у меня одно поле Partner. Две записи:
Код
Partner
--------
OOO "AAA"
OOO AAA
Выполняю код
Код
Sub test()
  Dim a As String
  a = "OOO AAA"
  MsgBox DFirst("Partner", "partners", "Partner=""" & a & """")
End Sub
Всё нормально.
Выпоняю:
Код
Sub test()
  Dim a As String
  a = "OOO ""AAA"""
  MsgBox DFirst("Partner", "partners", "Partner=""" & a & """")
End Sub
Вылетает ошибка, насколько я понял из-за символа двоиных кавычек. А мне надо, чтобы в обоих случаях было без проблем smile
Как в этом случае поступить с DFirst?

Автор: bopoha 25.2.2008, 12:44
Научится писать условия... 
Для строк внутри SQL строки используйте символ одинарной ковычки.

Т.е. 
Код

Sub test()
  Dim a As String
  a = "OOO ""AAA"""
  MsgBox DFirst("Partner", "partners", "Partner='" & a & "'")
End Sub


Т.к. в результате получаем строку:
Partner='OOO "AAA"'

В вашем случае получалось:
Partner="OOO "AAA""

Автор: kapbepucm 25.2.2008, 12:57
Вопрос решён.

Автор: kapbepucm 25.2.2008, 13:20
Удалите пост.

Автор: bopoha 25.2.2008, 17:54
Для того чтобы решить задачу с ковычками раз и на всегда... нужно делать замену в строках дублируя каждую одинарную и двойную ковычки... см. функцию Replace...

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)