LEADERSOFT.ru Разработка на заказ программ и сайтов
Форумы по информационным технологиям
 
Регистрация  |  Вход
left
Форумы Минимизировать
ПоискСписок форумов
  Программирование  Microsoft Access. Файлы mdb и accdb  Тема: Создание ...
 Тема: Создание очереди
 
 15.06.2007 21:08:25
Folkon
4 сообщения


Тема: Создание очереди
Здраствуйте!Помогите пожалуйста решить такую проблему.Скачал я с интернета пример журнализации событий.Смог его заточить под свою БД,чему сейчас очень доволен.Однако немного поразмыслив,понял,что как никак ,а журнал событии со временем вырастит очень большим,так как моя база сетевая и,следовательно,многопользовательская.Поискав в интернете нашел код "Создание очереди",в котором можно задавать определенное количество записей для хранения.Организован код по принципу первый вошел-первый вышел.Однако его заточить у меня лично не получилось.Расскажу вкратце что я сделал.Сам код поместил в модуль,создал макрос "autoexec",в котором прописал команду "запустить программу"(под программой я ,естественно,понимаю функцию Queue (см. далее)).Все.Запускаю программу,а она мне в ответ окно дебаггера,в котором дословно:"Прилжению не удается найти имя "Sample" из этого выражения.Указан элемент управления,отсутствующий в текущем объекте,и не указано правильное имя другой формы или отчета. .....и т.д".Подскажите,где моя ошибка....Привожу полный модуль журнализации событий:

позволяет добавлять строки в один конец, а удалять их с другого. Формируется поток данных типа FIFO (first in, first out):текст, попавший в очередь первым, первый ее и покинет. Можно применить , например, для хранения последних 10 открывавшихся файлов или форм.
Option Compare Database
Option Explicit

Function Queue(Sample As String, strNameTbl As String, strNameFld As String, bytMax As Byte)
'Sample -текст
'strNameTbl-имя таблицы
'strNameFld-имя поля
'bytMax-максимальное количество записей в очереди
Dim dbs As Database, tbl As Recordset, Counter As Integer, CountRec As Integer, CountRecForDel As Integer
Dim strCurTxt As String, strPrevTxt As String
Dim bolLog As Boolean

On Error GoTo err_

Set dbs = CurrentDb
Set tbl = dbs.OpenRecordset(strNameTbl)

With tbl
CountRec = .RecordCount
CountRecForDel = CountRec

If .RecordCount = 0 Then
.AddNew
tbl(strNameFld) = Sample
.Update
GoTo ext_
End If

.MoveLast
.MoveFirst

For Counter = 1 To CountRec
If tbl(strNameFld) = Sample Then GoTo ext_
.MoveNext
Next Counter

strPrevTxt = Sample
.MoveFirst

If bytMax <= CountRec Then
CountRec = bytMax
Else
CountRec = CountRec + 1
End If
For Counter = 1 To CountRec
If .EOF = False Then
strCurTxt = tbl(strNameFld)
.Edit
bolLog = False
Else
.AddNew
bolLog = True
End If
tbl(strNameFld) = strPrevTxt
.Update
If bolLog = False Then .MoveNext
strPrevTxt = strCurTxt
Next Counter

If CountRecForDel > bytMax Then
dbs.Execute "DELETE " & strNameTbl & "." & strNameFld & " FROM [" & strNameTbl & "] WHERE (((" & strNameTbl & "." & strNameFld & ")<>All (SELECT TOP " & bytMax & " " & strNameTbl & "." & strNameFld & " FROM [" & strNameTbl & "]; )));"
End If

ext_:
.Close
End With
Set dbs = Nothing
Exit Function

err_:
MsgBox Err.Description & " (" & Err & ")"
End Function




P.S.:огромное спасибо за быстрый ответ на вопрос "связь двух подчиненных табличных форм на одной вкладке".Не ожидал...Обязательно расскажу своим знакомым о вашем сайте!..


P.S. Общие вопросы по модулям
Автор: Максим от 18.05.2004 1:43:50 Источник ...
 15.06.2007 21:08:25
Павел8
2 сообщения


RE: Создание очереди
Очень нуждаюсь в программе по "очередь",если есть
код пришлите,буду благодарен.


P.S. Общие вопросы по модулям
Автор: Павел от 18.05.2004 6:49:31 Источник ...
  Программирование  Microsoft Access. Файлы mdb и accdb  Тема: Создание ...
ПоискПоиск  Список форумовСписок форумов  
right