Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RusFAQ.ru: Программирование на Basic / VBA


Информационный Канал Subscribe.Ru

РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / Basic/VBA

Выпуск № 15
от 27.02.2005, 22:10

Администратор:Калашников О.А.
В номере:Вопросов: 1, Ответов: 1


Вопрос № 17355: Уважаемые эксперты! Как добавить запись в базу данных, если в ней нет ни одной записи? Как проверить на отсутствие записей в БД? Использую с ледующий код для добавления записи:...

Вопрос № 17355
Уважаемые эксперты! Как добавить запись в базу данных, если в ней нет
ни одной записи? Как проверить на отсутствие записей в БД? Использую с
ледующий код для добавления записи:

Приложение:

Отправлен: 22.02.2005, 22:02
Вопрос задал: Александр А.А. (статус: Посетитель)
Всего ответов отправлено: 1

Отвечает: Miklucho
Здравствуйте, Александр А.А.!
Есть такие 2 функции: EOF & BOF, обе типа Boolean.
Первая равна True, если курсор находится на последней записи, вторая если на первой. Так вот, сразу после открытия таблицы командой Open, проверяешь, а не равно ли EOF= true. Если да, значит таблица пустая. Вот пример:
sql = "select * from newTable"
Set rs = New ADODB.Recordset
rs.Open sql, cn, adOpenForwardOnly, adLockReadOnly
if rs.EOF = True Then MsgBox "Записей нет!"
А это пример перебора всех записей в таблице и подсчета их количества:
Private Sub Command1_Click()
Call ConnectDataBase("Data.mdb")
Dim q As String, sql As String
sql = "select * from new1"
Set rs = New ADODB.Recordset
With rs
.Open sql, cn, adOpenForwardOnly, adLockReadOnly
Do While Not rs.EOF
i = i + 1
rs.MoveNext
Loop
.Close
End With
Set rs = Nothing
cn.Close
Set cn = Nothing
MsgBox "Всего записей - " & i
'Кстати, если i=0, то таблица пустая.
End Sub
Небольшие пояснения.
cn - это переменная подключения к БД. Должна быть глобальной на уровне модуля. Устанавливается в процедуре ConnectDataBase():
Public Sub ConnectDataBase(NameDB As String, Optional PathDB As String)
Dim path As String
If PathDB <> "" Then
path = PathDB + "" + NameDB
Else
path = App.path + "" + NameDB
End If
Set cn = New ADODB.Connection
With cn
.ConnectionString = "Provider=Microsoft.Jet.OLEDB.3.51;Persist Security Info=False;Data Source=" + path
.Open
End With
End Sub
Для добавления записи используй команду addnew:
rs.addnew (rs - см. выше)
Ответ отправил: Miklucho (статус: Студент)
Отправлен: 25.02.2005, 09:20
Оценка за ответ: 5


Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2005, RusFAQ.ru, Россия, Москва. Все права защищены.
Идея, дизайн, программирование, авторское право: Калашников О.А.


http://subscribe.ru/
http://subscribe.ru/feedback/
Подписан адрес:
Код этой рассылки: comp.soft.prog.basicvba
Отписаться

В избранное