Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 |

 

  Вопрос: FindFirst - по несколким полям? Добавлено: 26.04.03 07:38  

Автор вопроса:  Justas  | Web-сайт: justas.newmail.ru | ICQ: 259418212 
как правильно организовать FindFirst - метод по несколким полям?
например в базе .mdb - таблица table1, там есть поля: pole1, pole2
использую элемент Data
  надо:
1) найти методом FindFirst по несколким полям запись (pole1='иванов' AND pole2='225')
2) после того как нашёл, удалить запись.
  Проблема в том, что запись-то я нахожу, но при этом указатель записи равен 0.
А если ищу по одному полю, то всё нормально. Указатель записи там где надо.
может я ишу неправильно? Вот кусок кода:
'*******  
Dim a As String, test1 As String, test2 As String
test1 = "pole1='иванов'"
test2 = "pole2='255'"
a = Chr(34) & test1 & Chr(34) & " AND " & Chr(34) & test2 & Chr(34)
Data1.Recordset.FindFirst a
If Data1.Recordset.NoMatch Then  'здесь NoMatch=False
  MsgBox "NoMatch"
  Exit Sub
End If
Data1.Recordset.Delete
'*******
А при удалении удаляется 1_я запись, а не то чего нашёл...
Поможите люди добрые плиз.
P/S
удалять при помощи SQL- Delete не предлагать. Т.к. таких записей может быть несколько, а удалить надо первую найденную.

Ответить

  Ответы Всего ответов: 4  

Номер ответа: 1
Автор ответа:
 hedgehog



ICQ: 175571327 

Вопросов: 15
Ответов: 207
 Web-сайт: ezh.ru
 Профиль | | #1
Добавлено: 27.04.03 00:35

Или я чего-то не понимаю в этой жизни :( Как у тебя могут быть в рекорсете еще и другие записи, не отвечающие твоему условию? Если ты задал искать Иванова с номером 225, то тебе или ничего не вернется или вернется именно Иванов (Ивановы) с номером (номерами) 225. И удаляй себе первую же запись. Кстати а почему ты и число берешь в кавычки, у тебя что числа хранятся в ткстовых полях?

А вообще я считаю, что работать надо без костылей в виде всевозможных дата контролов. Пользовался бы ADO или на худой конец DAO - проблемы такой не имел бы в принципе.

Ответить

Номер ответа: 2
Автор ответа:
 Justas



ICQ: 259418212 

Вопросов: 24
Ответов: 325
 Web-сайт: justas.newmail.ru
 Профиль | | #2
Добавлено: 27.04.03 03:20

> Кстати а почему ты и число берешь в кавычки, у тебя что числа хранятся в ткстовых полях?

да нет, это я просто для примера написал.  

> Пользовался бы ADO или на худой конец DAO - проблемы такой не имел бы в принципе.

Если не сложно, напиши кусок кода применительно к этому случаю. (Я с базами данных только недавно работать стал.) 

Ответить

Номер ответа: 3
Автор ответа:
 hedgehog



ICQ: 175571327 

Вопросов: 15
Ответов: 207
 Web-сайт: ezh.ru
 Профиль | | #3
Добавлено: 28.04.03 12:47

Примерно так:

Dim Conn As New ADODB.Connection
Dim RS As New ADODB.Recordset
Conn.Open your_connection_string
RS.Open "SELECT * FROM table_name WHERE field1_name='" & string_value & "' AND field2_name=" & numeric_value, Conn, adOpenDynamic, adLockPessimistic
If Not RS.EOF Then
    RS.Delete adAffectCurrent
    RS.Update
End If
RS.Close
Set RS = Nothing
Set Conn = Nothing

Ответить

Номер ответа: 4
Автор ответа:
 Justas



ICQ: 259418212 

Вопросов: 24
Ответов: 325
 Web-сайт: justas.newmail.ru
 Профиль | | #4
Добавлено: 29.04.03 09:53

2hedgehog :

   

спасибо!

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам