Rambler's Top100
Форум: MS ACCESSVBVBA MS OfficeMS SQL server
Новые сообщения: 0000

Форум: MS ACCESS

Вопросы связанные с MS ACCESS

Обновить визитку
Участники «Online»
Все участники

 
 

Доброго времени суток, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: удаление записей программно
 
 автор: Diamand   (17.11.2010 в 15:16)   личное сообщение
 
 

Добрый день подскажите как программно удалить записи если строка не пустая (там уже есть запись)

Public Sub s1()

Dim bd As Database, tab1 As Recordset
Dim str As String
Dim strSQL As String
Set bd = DBEngine.Workspaces(0).Databases(0)
Set tab1 = bd.OpenRecordset("betaПриход")

Do Until tab1.EOF

tab1.Edit

 If Not IsNull(tab1!comment) Then

 strSQL = "DELETE [tab1].comment from [tab1]"
  
 End If
tab1.MoveNext

Loop
End Sub



пробовал вместо strSQL = "DELETE [tab1].comment from [tab1]" так

strSQL = "DELETE [betaПриход].comment from [betaПриход]"

  Ответить  
 
 автор: kot_k_k   (17.11.2010 в 15:23)   личное сообщение
 
 

dbs.Execute ("delete * from tabla where NZ(НАШЕ_ПОЛЕ,0)<>0")
на фиг удалит с табыл все записи где НАШЕ_ПОЛЕ не пустое
тип того,
а вообще в Вашем коде нет оператора который бы делел что нибудь с базой (таблой)


strSQL = "DELETE [tab1].comment from [tab1]"



это просто присвоили строковой переменной значение а где мы его используем непонятно

п.с. да и ваще как-то не понятен код.



tab1.Edit            - зачем-то перевели запись текущубю в режим редактирования

 If Not IsNull(tab1!comment) Then      - сравнили на ниль поле комент

 strSQL = "DELETE [tab1].comment from [tab1]"         - присвоили переменной строку
   
 End If                                   -  конец сравнения
tab1.MoveNext                   - перешли на новую запись

это все о чем

  Ответить  
 
 автор: Diamand   (17.11.2010 в 15:33)   личное сообщение
 
 

ситуация такова что есть таблица там несколько полей в том числе и поле comment нужно что бы если в поле comment есть какие то записи их нужно удалить

  Ответить  
 
 автор: kot_k_k   (17.11.2010 в 15:38)   личное сообщение
 
 

Вот что пишет хелп по поводу вашей SQL строки:


Запрос на удаление удаляет записи целиком, а не только содержимое указанных полей. Чтобы удалить данные в конкретном поле, следует создать запрос на обновление, который заменяет имеющиеся значения на значения Null.



нужно понимать что делаем если удалить только кометны то нужно запрос на обновление
если ВСЮ запись то хавтит за глаза вот такого


strSQL = "DELETE * from betaПриход where Not IsNull(tab1!comment) =true"
currentdb.Execute (strSQL)


только проверить условия удаления.

  Ответить  
 
 автор: Diamand   (17.11.2010 в 16:04)   личное сообщение
53 Кб.
 
 

да нужно удалить только comment что бы значения были null то уже запарился посмотрите плиз

  Ответить  
 
 автор: osmor   (17.11.2010 в 15:35)   личное сообщение
 
 

currentdb.execute "delete from tab1 where nz(comment,'') <> ''"

  Ответить  
 
 автор: kot_k_k   (17.11.2010 в 15:39)   личное сообщение
 
 

пока красоту наводил - опередил

  Ответить  
 
 автор: Diamand   (17.11.2010 в 16:17)   личное сообщение
53 Кб.
 
 

да нужно удалить только comment что бы значения были null то уже запарился посмотрите плиз

  Ответить  
 
 автор: kot_k_k   (17.11.2010 в 16:32)   личное сообщение
9 Кб.
 
 

вот там и запросом и кодом

  Ответить  
 
 автор: Diamand   (17.11.2010 в 16:38)   личное сообщение
 
 

Спасибо большое

  Ответить  
 
 автор: kot_k_k   (17.11.2010 в 16:35)   личное сообщение
 
 

замечание по ходу - зачем проверять есть в поле информация или нет если его нужно обнулить???
вот если б обнулить только то что начинаестя с "А*" или содержит "*12345*" - то тогда да, а так это не нужное действо.

  Ответить  
HiProg.com - Технологии программирования
Rambler's Top100 TopList