Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Access! Добавление записей в подчиненную таблицу

4.1K
24 августа 2003 года
natalia
18 / / 24.08.2003
1) Подскажите пожалуйста, как организовать добавление n записей (где n - значение поля в форме) в подчиненную таблицу(форму) автоматически (есть формула) при нажатии на кнопку в форме.

2) Как при включении флажка (лог. поле в таблице) сделать всю запись нередактируемой?

3) Если в меню Access Add-Ins нет packaging Wizard, значит не сделать независимого приложения или?

Заранее спасибо.
258
25 августа 2003 года
SergeySV
1.5K / / 19.03.2003
Цитата:
Originally posted by natalia
1) Подскажите пожалуйста, как организовать добавление n записей (где n - значение поля в форме) в подчиненную таблицу(форму) автоматически (есть формула) при нажатии на кнопку в форме.


Способов масса:
1. через DoCmd:
' переводим фокус в подч. форму (нак какой-нибудь элем.)
' делается это в 2 этапа
Forms![Главн_форма]![Подч_форма].SetFocus
Forms![Главн_форма]![Подч_форма].Form![Имя_Контрол].SetFocus
DoCmd.GoToRecord ,,acNewRec
' заполняем поля в новой записи и повторяем все дальше

2. через DAO:

Код:
Dim dbs As Database, rst As Recordset, rstClone As Recordset
 
  Set dbs = CurrentDb
  Set rst = dbs.OpenRecordset("Таблица1", dbOpenDynaset)
  With rst
    .AddNew
    !Поле1 = "ля-ля"
    !Поле2 = "ля-ля"
    .Update
  End With

' обновление формы и переход на последнюю запись
   Forms![Главн_форма].Requery
   Set rstClone = Forms![Главн_форма].RecordsetClone
   rstClone.MoveLast
   Forms![Главн_форма].Bookmark = rstClone.Bookmark

  rst.Close
  rstClone.Close
  Set dbs = Nothing


3. Практически также через ADO (только название методов чуть другие)

4. Если записи, которые необходимо добавить находятся в другой таблице, то добавление можно сделать через запрос на добавление записи:
Код:
Dim dbs As Database, strSQL as String

On Error GoTo Err_Execute
  Set dbs = CurrentDb
  strSQL="INSERT INTO Таблица1( Поле1 ) " _
         "SELECT Таблица2.Поле1 " _
         "FROM Таблица2 " _
         "GROUP BY Таблица2.Поле1 " _
         "HAVING Таблица2.Поле1)='aaaa'"

  dbs.Execute

Exit_:
  Set dbs = Nothing
  Exit sub ' или Function

Err_Execute:
 MsgBox "Error number: " & Err.Number & vbCr &  Err.Description
 Resume Exit_


Цитата:

2) Как при включении флажка (лог. поле в таблице) сделать всю запись нередактируемой?


Я так понимаю, что необх. запретить редактировать запись в форме:
Me.AllowEdits=False
это же свойство можно сразу установить в совйствах формы (в рус. Access: Данные->Разрешить изменение)

Можно еще открывать набор записей в форме не как динамический набор(по умолч.), а как статический набор.

Цитата:

3) Если в меню Access Add-Ins нет packaging Wizard, значит не сделать независимого приложения или?
Заранее спасибо.



Не знаю не использовал, но если его нет, то естественно сделать ничего нельзя. А зачем это? все равно твоя база будет только через Access работать, тайно или явно...
Может я конечно ошибаюсь, но что-то я не видел, чтобы базу на Access можно было так упаковать, чтобы таскать потом ее как отдельное приложение (это надо ядро засунуть туда, все библиотеки, тот еще монстр будет.. :-) )

4.1K
26 августа 2003 года
natalia
18 / / 24.08.2003
Спасибо, что откликнулись, только у меня ничего не получилось..:( На данную строку Set dbs = CurrentDb сваливается ошибка о несоответствии типа (используя модель ДАО). А функцию OpenRecordset вообще не находит..(( В Tools->Referens поставлена галочка напротив Microsoft DAO 3.6 Object Library, а в object браузере функция находится. В чем тут может быть дело? Или может избрать другой путь решения? Если можно, напишите более подробно как решить такую задачу:

Необходимо добавить в подчиненную таблицу Col - количество (значение поля в главной форме) записей такого вида:

for i=1 to Col
[подчин. форма]!pdУник.=[главн. форма]!glУникПоле
[подчин. форма]!pdНомерПП = i
[подчин. форма]!pdДата1 = DateAdd("m",i,"[главн. форма]!glДата")
[подчин. форма]!pdПоле3= [главн. форма]!glПоле00/[главн. форма]!glПоле01
...
[подчин. форма]!pdПоле6 = еще что-нибудь зависящее от i
next i

И еще, поподробнее насчет "галочки". Лог. поле есть в подчиненной таблице. По умолчанию - это поле равно False, но когда пользователь ставит галку, вся запись должна стать нередактируемой, вроде как ОТМЕЧЕНО/ОПЛАЧЕНО и боле не пригодится, но НЕ ВСЕ ЗАПИСИ в таблице, а только одна.

Спасибо.
PS: про самостоятельное приложение вычитала в книге, и вообще я только начинающий специалист, не судите строго...:)))
258
26 августа 2003 года
SergeySV
1.5K / / 19.03.2003
Цитата:
Originally posted by natalia
Спасибо, что откликнулись, только у меня ничего не получилось..:( На данную строку Set dbs = CurrentDb сваливается ошибка о несоответствии типа (используя модель ДАО). А функцию OpenRecordset вообще не находит..(( В Tools->Referens поставлена галочка напротив Microsoft DAO 3.6 Object Library, а в object браузере функция находится. В чем тут может быть дело? Или может избрать другой путь решения? Если можно, напишите более подробно как решить такую задачу:

Необходимо добавить в подчиненную таблицу Col - количество (значение поля в главной форме) записей такого вида:

for i=1 to Col
[подчин. форма]!pdУник.=[главн. форма]!glУникПоле
[подчин. форма]!pdНомерПП = i
[подчин. форма]!pdДата1 = DateAdd("m",i,"[главн. форма]!glДата")
[подчин. форма]!pdПоле3= [главн. форма]!glПоле00/[главн. форма]!glПоле01
...
[подчин. форма]!pdПоле6 = еще что-нибудь зависящее от i
next i

И еще, поподробнее насчет "галочки". Лог. поле есть в подчиненной таблице. По умолчанию - это поле равно False, но когда пользователь ставит галку, вся запись должна стать нередактируемой, вроде как ОТМЕЧЕНО/ОПЛАЧЕНО и боле не пригодится, но НЕ ВСЕ ЗАПИСИ в таблице, а только одна.

Спасибо.
PS: про самостоятельное приложение вычитала в книге, и вообще я только начинающий специалист, не судите строго...:)))




Если бы мне надо было бы это сделать, то я пошел бы через DAO (хоть друг Билл и товарищ Гетц и призывает переходить на ADO, но DAO пока роднее). Но тут для тебя важна сама суть, а она такая же, что в DAO, что в ADO, а переписать не проблема.
Значит так это выглядит:

Код:
Dim dbs As DAO.Database, rst As DAO.Recordset

  Set dbs = CurrentDb
  Set rst = dbs.OpenRecordset("Таблица1", dbOpenDynaset)
  for i=1 to Col
    With rst
      .AddNew
      !pdУник = Forms![главн. форма]!glУникПоле
      !pdНомерПП = i
      ...
      .Update
    End With
  Next i

  rst.Close
  rstClone.Close
  Set dbs = Nothing


По поводу ругани на CurrentDb, давай разбираться. Значит говоришь Microsoft DAO 3.6 Object Library подключено - это хорошо. Тут может быть конфликт имен, это когда в разных библиотеках используют одинаковые имена объектов или методов, поэтому давай с тобой объявим переменные с указанием полного пути (в смысле всех родителей): DAO.Database и DAO.Recordset - так должно все сработать (конфликт может быть с одной из библиотек ADO), если не получится, пиши, подумаем... :-)

Насчет галочки: Вопрос такой, как ты записи выводишь, через обычную форму или ленточную/табличную?

В первом случае пользователь видит только одну запись, ее мы блокируем (в пред. посте), при переходе на другую запись, проверяем и снимаем/устан. блокировку.

Во втором случае, можно работать также, при переходе к другой записи, в событии Current делаем проверку и опред. блокировать ли тек. запись или нет. В принципе также можно блокировать не всю запись, а только отд. поля (у них тоже есть свойства Доступ и Блокировка)
4.1K
26 августа 2003 года
natalia
18 / / 24.08.2003
Получилось! Получилось! Спасибо! Вот только не с первого разу, вот это то я и упустила (дура глупая):

Forms![гл. форма].Requery
Set rstClone = Forms![гл. форма].RecordsetClone
rstClone.MoveLast
Forms![гл. форма].Bookmark = rstClone.Bookmark

и тут же вопрос - это дело я вставила в цикл до next i, может неправильно, а? А то записи ТО правильно добавляются, ТО их больше в два раза от того, что уникальное поле запоминается из предыдущей записи.. странно как-то... Подскажите этот момент поподробнее и эту часть кода, что она выполняет? Что за RecordsetClone? :)))

-----
С галочкой я так поступаю, может вовсе некорректно:

Private Sub flag_Click()
If flag=True Then
Form_podForm1.pddate.Enabled = False
Else
Form_podForm1.pddate.Enabled = True
End If
End Sub

в итоге во ВСЕХ записях поле pddate становится недоступным. Как же сделать это Enabled только для той записи, в которой я ставлю галочку?

Простите, что повторяюсь с вопросами, хочу разобраться, и немного туплю.. Но я стараюсь..))))
Спасибо. Жду.
258
26 августа 2003 года
SergeySV
1.5K / / 19.03.2003
Цитата:
Originally posted by natalia
Получилось! Получилось! Спасибо! Вот только не с первого разу, вот это то я и упустила (дура глупая):

Forms![гл. форма].Requery
Set rstClone = Forms![гл. форма].RecordsetClone
rstClone.MoveLast
Forms![гл. форма].Bookmark = rstClone.Bookmark

и тут же вопрос - это дело я вставила в цикл до next i, может неправильно, а? А то записи ТО правильно добавляются, ТО их больше в два раза от того, что уникальное поле запоминается из предыдущей записи.. странно как-то... Подскажите этот момент поподробнее и эту часть кода, что она выполняет? Что за RecordsetClone? :)))



Этот кусок кода я опустил в последнем примере, потому как подумал, что для твоей ситуации он не очень критичен.

А смысл его вот какой:

Когда ты обращаешься к таблице программно напрямую (через DAO, ADO и т.д.), а в это же время эта таблица показывается в форме, то все твои изменения в таблице не будут отображены, пока ты принудительно не заставишь Access обновить выводимую таблицу в форме через метод формы - Requery.

Т.е. в твоем случае надо в конце написать:
Forms![Гл_форма]]![Подч_форма].Form.Requery

И вот тут одна нехорошая такая вещь после этого происходит - записи загружаются заново и по умолчанию фокус устанавл. на первую запись. Т.е. ты добавил записи и после этого ты попадаешь на начало. Чтобы не заставлять пользователя вручную возвращаться, можно сразу добавить такой код:
DoCmd.GoToRecord ,,acLast

Но у этого метода такой недостаток, чтобы так написать, надо (ОБЯЗАТЕЛЬНО) перевести фокус на элемент (любой) этой подчин. формы., т.е. в итоге:

Forms![Гл_форма]]![Подч_форма].Form.Requery
Forms![Главн_форма]![Подч_форма].SetFocus
Forms![Главн_форма]![Подч_форма].Form![Имя_Контрол].SetFocus
DoCmd.GoToRecord ,,acLast

Тебе такой вариант может подойти.


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

Подитожу. Процесс добавления записей и Requery можно производить с неактивной (ее вообще может быть не видно) формой, а вот для того что перейти в этой НЕАКТИВНОЙ форме на последнюю запись, я и применяю этот код:
Set rstClone = Forms![Главн_форма].RecordsetClone
rstClone.MoveLast
Forms![Главн_форма].Bookmark = RecordsetClone.Bookmark

Делает он следующее.
У каждой формы есть свойство RecordsetClone, которое возвращает объект Recordset (набор записей, про него в справке лучше почитай), в котором находятся записи этой формы. По сути Recordset эта таже таблица, только в виде объекта DAO для того чтобы можно было делать всякие вещи с полями и записями как с обычными объектами в языках программирования.
В этом rstClone мы по умолчанию стоим на первой записе. Переходим на последнюю - rstClone.MoveLast
Теперь используем свойство Bookmark - закладка. Эта Bookmark для того, чтобы можно было поставить закладку, а потом быстро вернуться на нужную запись в Recordset или в форме (она тоже поддерживает закладки). Вот и мы и переходим в форме на ту же запись, что уже перешли в объекте RecordsetClone.

Это свойство Bookmark может немного смутить. У него такая хитрость:
Когда мы обращаемся (ЧИТАЕМ) к свойству -RecordsetClone.Bookmark - то оно возвращает закладку на активную запись в объекте RecordsetClone. Мы например, можем эту закладку сохранить в отд. переменной:
Dim bk as Bookmark
Set bk=RecordsetClone.Bookmark
и потом ее использовать где-нибудь дальше.

А вот когда мы присваиваем (ПИШЕМ) этому свойству RecordsetClone.Bookmark = bk другую закладку, это значит, мы меняем активную запись на ту, которая была активна, когда считывалась эта закладка (bk), т.е. просто переходим на указанную запись.
В нашем примере эти два действия сразу в одной строке получились:
Forms![Главн_форма].Bookmark = RecordsetClone.Bookmark


Цитата:

-----
С галочкой я так поступаю, может вовсе некорректно:

Private Sub flag_Click()
If flag=True Then
Form_podForm1.pddate.Enabled = False
Else
Form_podForm1.pddate.Enabled = True
End If
End Sub

в итоге во ВСЕХ записях поле pddate становится недоступным. Как же сделать это Enabled только для той записи, в которой я ставлю галочку?



А оно и будет заблокировано во всех выводимых записях, но так пользователь не может работать сразу с несколькими, а только с одной, то как только он будет переходить к следующей записи, мы будем решать: блокировать ее или нет.

К твоему коду, надо добавить еще код обработчик событии формы Current (возникает при ЛЮБОМ переходе польз. к другой записе):

Private Sub Form_Current()
If flag=True Then
Form_podForm1.pddate.Enabled = False
Else
Form_podForm1.pddate.Enabled = True
End If
End Sub

Так что мы всегда его опередим и пользователь от нас не уйдет :-)


Уф, вроде бы все.

258
26 августа 2003 года
SergeySV
1.5K / / 19.03.2003
Извиняй, очепятка небольшая, строка:

Forms![Главн_форма].Bookmark = RecordsetClone.Bookmark

А надо:
Forms![Главн_форма].Bookmark = rstClone.Bookmark конечно.

Ну и в твоем случае мы имеем дело с подч. формой, тогда весь код надо переписать:
Set rstClone = Forms![Главн_форма]![Подч_форма].Form.RecordsetClone
rstClone.MoveLast
Forms![Главн_форма]![Подч_форма].Form.Bookmark = rstClone.Bookmark
4.1K
27 августа 2003 года
natalia
18 / / 24.08.2003
С записями разобрались вроде, Спасибо! ))) Только вот... можно ли сделать проверку на последующее нажатие кнопки на добавление (например, случайное)? Ведь мне нужно, чтобы записей было ровно столько, сколько их внесли первый раз и далее не добавлялись.

С флажком не особливо у меня получается, туплю... вот это Form_Current для какой формы писать, для главной или подчиненной? Важна ли последовательность этих процедур?

Ничего, что я так много спрашиваю, мне уже неловко? :roll:

Еще вопрос на отвлеченную тему. Можно ли установить параметры отчета (а конкретно закрепить полЯ - лев.=10мм, прв.=10мм, верх.=10мм, нижн.=10мм) программно? Дело в том, что при просмотре отчета поля устанавливаются по умолчанию, если поменяю в меню, то несколько раз может вывести правильно, а потом опять сбиться... беда просто. И потом пользователям запара, думать о полях..

Спасибо!
4.1K
27 августа 2003 года
natalia
18 / / 24.08.2003
Забыла, хотела ведь еще один вопросик..) Хочу разместить на форме (ТОЛЬКО ДОБАВЛЕНИЕ ЗАПИСЕЙ) две кнопки: <Сохранить запись и закрыть форму> и <Не сохранять запись и закрыть форму>. Дело в том, что когда запись уже внесена, и окно формы закрыть через кнопку управления окном (крестик в прав. верхн. углу) - запись то добавляется.. Так вот есть крестик убрать и сделать две кнопки. Одной написать код - Сохранить запись, закрыть форму. А вот что написать для другой кнопки? Я предполагаю, что нужно удалить запись и закрыть форму или? Я права? )))
258
27 августа 2003 года
SergeySV
1.5K / / 19.03.2003
Ща сбегаю, чайку с булочками попью и отвечу на все твои вопросы. ;)

А вообще если ты так серьезно взялась за изучение Access, то лучше всего достань книжку - Access 2002 Разработка настольных приложений, т.1, Кен Гетц и д.р. - лучшая книга (это не только мое мнение). Там на все твои вопросы есть ответы. И то что я сейчас буду отвечать тоже от туда :)
258
27 августа 2003 года
SergeySV
1.5K / / 19.03.2003
Цитата:
Originally posted by natalia
С записями разобрались вроде, Спасибо! ))) Только вот... можно ли сделать проверку на последующее нажатие кнопки на добавление (например, случайное)? Ведь мне нужно, чтобы записей было ровно столько, сколько их внесли первый раз и далее не добавлялись.



Трудно посоветовать что-то конкретное, потому как я не знаю всей твое программы. Вариантов решения - масса.

После того записи добавились можно сделать кнопку не доступной (темно серой) Enabled=False. Тока надо не забыть потом при наступлении соотв. события сделать ее обратно доступной. После какого события позволять пользователю опять нажимать эту кнопку решать тебе (тока надо хорошо подумать). Если хочешь, чтобы пользователь тока один раз нажимал на кнопку во время редактирования записи, а после перехода к другой мог опять нажимать, то это делается так:

в код события нажатия кнопки, после всех добавлений записи, пишим - ИмяКнопки.Enabled = False

а в событии формы (если кнопка на глав. форме, то событие соотв. главной формы) Current пишем обратный код - ИмяКнопки.Enabled = True.


Цитата:

С флажком не особливо у меня получается, туплю... вот это Form_Current для какой формы писать, для главной или подчиненной? Важна ли последовательность этих процедур?



Ты хочешь чтобы в подч. форме блокировался элемент по галке - тогда, конечно, событие Current подч. формы. Я вроде подробно объяснил механизм трюка с блокировкой, что-то осталось непонятно?


Цитата:

Еще вопрос на отвлеченную тему. Можно ли установить параметры отчета (а конкретно закрепить полЯ - лев.=10мм, прв.=10мм, верх.=10мм, нижн.=10мм) программно? Дело в том, что при просмотре отчета поля устанавливаются по умолчанию, если поменяю в меню, то несколько раз может вывести правильно, а потом опять сбиться... беда просто. И потом пользователям запара, думать о полях..



Чтобы задать поля программно надо обратиться к объекту отчета под названием Printer. У него есть все свойства перечисленные в меню Параметры страницы.

Например, вот готовая функция открывающая отчет и устанавливающая некоторые параметры:

Код:
Public Sub SetPrintReport(strRptName As String)
  ' сначала открываем его скрыто, чтобы поменять поля
  DoCmd.OpenReport strRptName, acViewPreview, , , acHidden
  With Reports(strRptName).Printer
    .LeftMargin = 10
    .RightMargin = 10
    .TopMargin = 10
    .BottomMargin = 10
  End With
  ' теперь можно показать уже отформатированный отчет
  DoCmd.OpenReport strRptName, acViewNormal
End Sub


P.S. процедуры можешь менять под свои потребности как хочешь
4.1K
27 августа 2003 года
natalia
18 / / 24.08.2003
Цитата:
Originally posted by SergeySV
Ща сбегаю, чайку с булочками попью и отвечу на все твои вопросы. ;)

А вообще если ты так серьезно взялась за изучение Access, то лучше всего достань книжку - Access 2002 Разработка настольных приложений, т.1, Кен Гетц и д.р. - лучшая книга (это не только мое мнение). Там на все твои вопросы есть ответы. И то что я сейчас буду отвечать тоже от туда :)



Ага, вам тама хорошо рассуждать, в столице то небось книжных магазинов полно, а у нас в поисках стоящего забегаешься.. непонятно по каким критериям книги привозят.. да и мало их.. Напиши подробнее кто издатель, автор, год, я постарюсь найти если это действительно лучшая книга..)))

А у меня такие: Самоучитель Access 2002, Юрий Бекаревич & Нина Пушкина (БХВ-Петербург) - так себе - теория, практики мало; Программирование в Access 2002 - Учебный курс, Ирина Харитонова & Наталья Вольман (Издт-во: Питер) - много практики, малопонятна теория; есть еще Сборник рецептов Access изд-ва Питер..))

А за изучение Access я взялась серьезно где-то месяц назад.. тогда и не знала еще что такое связь один-ко многим.. Пишу БД, тема которой - кредитование. Во! )) Думаю, у меня получается неплохо, не надо на меня бочку катить.. Я сюда обращаюсь с теми проблемами, которых не решила самостоятельно, а время идет..))))) И огромная хвала людям, обитающим в форумах, к которым всегда можно обратиться за помошью..)) Пиши инфу про книгу, достану...))) А пока буду обращаться сюда за советами специалистов...:))))))

Не знать чего-то - нестыдно..)))) стыдно - не шевелиться.. я так думаю..))))

258
27 августа 2003 года
SergeySV
1.5K / / 19.03.2003
Цитата:
Originally posted by natalia
<Сохранить запись и закрыть форму> и <Не сохранять запись и закрыть форму>.



Для первой кнопки пишем: DoCmd.Close , , acSaveYes
Для второй - DoCmd.Close , , acSaveNo -
все изменения, которые пользователь внес в текущую запись (и если он НЕ нажимал пункт меню: Запись->Сохранить запись) будут отменены, форма закроется.

258
27 августа 2003 года
SergeySV
1.5K / / 19.03.2003
Цитата:
Originally posted by natalia


Ага, вам тама хорошо рассуждать, в столице то небось книжных магазинов полно, а у нас в поисках стоящего забегаешься.. непонятно по каким критериям книги привозят.. да и мало их.. Напиши подробнее кто издатель, автор, год, я постарюсь найти если это действительно лучшая книга..)))

А у меня такие: Самоучитель Access 2002, Юрий Бекаревич & Нина Пушкина (БХВ-Петербург) - так себе - теория, практики мало; Программирование в Access 2002 - Учебный курс, Ирина Харитонова & Наталья Вольман (Издт-во: Питер) - много практики, малопонятна теория; есть еще Сборник рецептов Access изд-ва Питер..))

А за изучение Access я взялась серьезно где-то месяц назад.. тогда и не знала еще что такое связь один-ко многим.. Пишу БД, тема которой - кредитование. Во! )) Думаю, у меня получается неплохо, не надо на меня бочку катить.. Я сюда обращаюсь с теми проблемами, которых не решила самостоятельно, а время идет..))))) И огромная хвала людям, обитающим в форумах, к которым всегда можно обратиться за помошью..)) Пиши инфу про книгу, достану...))) А пока буду обращаться сюда за советами специалистов...:))))))

Не знать чего-то - нестыдно..)))) стыдно - не шевелиться.. я так думаю..))))



С этим трудно не согласиться... :)

Кстати, мы с тобой в некотором роде коллеги, только у меня не только кредиты, а весь баланс банка

Книга действительно самая лучшая, лучше именно ее читать. И несмотря не того , что она позиционируется для профессиналов, она очень хорошо подходит для начального изучения, читается легко, и очень удобно использовать в качестве справочника.
Ее конечно не во всех магазинах найти можно, но в твоем случае книжку надо просто заказать по интернет магазину, я так сам иногда делаю, получается не дороже (напрямую у издателя, издержек магазинных нет) и не долго (~неделя).

258
27 августа 2003 года
SergeySV
1.5K / / 19.03.2003
На всякий случай полная инф. по книге:

Литвин П., Гетц К., Гунделой М.
Разработка настольных приложений в Access 2002. Для профессионалов (+CD). - СПб.: Питер; К.: Издательская группа ИРМб 2002.- 1008 с.: ил.
ISBN 5-94723-499-8
258
27 августа 2003 года
SergeySV
1.5K / / 19.03.2003
Блин, PuntoSwitcher гад

ИРМб - это "BHV,"
4.1K
28 августа 2003 года
natalia
18 / / 24.08.2003
Я собственно занимаюсь лизингом в крупной торговой компании...)) А с отчетом не получается. Все равно выводит как ему нравится.. кстати я не говорила, у меня Access 2000, может в этом дело?
258
28 августа 2003 года
SergeySV
1.5K / / 19.03.2003
Цитата:
Originally posted by natalia
Я собственно занимаюсь лизингом в крупной торговой компании...)) А с отчетом не получается. Все равно выводит как ему нравится.. кстати я не говорила, у меня Access 2000, может в этом дело?



Главное, чтобы не Ac97 (у него ощутимые различия)

Про печать: похоже на глюк. Если настройки держатся некоторые время, а потом после очередного открытия сбиваются, то тут трудно уже что сделать, Aceess че-то мудрит.. А у тебя стоят на Ac2000 сервис паки Sp1 и Sp2 (некоторые известные глюки, только после их установки пропадают)?

4.1K
28 августа 2003 года
natalia
18 / / 24.08.2003
Да, вот и я подумала на глюк. Ладно, спасибо за всё, если что обращусь за помощью. ))
258
28 августа 2003 года
SergeySV
1.5K / / 19.03.2003
:))
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог