Формирование отчета в Acess в виде таблице. - Страница 3
| Правила | Регистрация | Пользователи | Сообщения за день |  Справка по форуму | Файлообменник |

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Формирование отчета в Acess в виде таблице.

Формирование отчета в Acess в виде таблице.

Ответ
Поиск в этой теме
Непрочитано 04.02.2005, 17:14
Формирование отчета в Acess в виде таблице.
Mikhail
 
инженер-технолог (ГИП)
 
Санкт-Петербург
Регистрация: 11.09.2003
Сообщений: 1,144

Добрый день.
Такая проблемма.
Из Автокада делаю выборку аттрибутов в Эксель (в Acess почему то не хочет, глючно что то или Офис или Кад), потом импортирую их в Acess. Там запрос и по запросу пытаюсь создать отчет в виде спецификации, т.е. табличный и с колонтитулами.
Таблицу получилось сделать когда каждой ячейки с данными присвоил значение ТИПА ГРАНИЦЫ- СПЛОШНАЯ, тогда эти ячейки обводились и получалась таблица. Но если данные не влезают в одну строчку, то получается ерунда типа того, что или весь текст не влезает в ячейку или если перенос включить (РАСШИРЕНИЕ - ДА), то тогда некорректно изображаются остальные ячейки этой строки. Они не увеличиваются в размере и обводятся по узкому контуру, что не очень красиво.(картинка)
[ATTACH]1107526600.jpg[/ATTACH]
__________________
Большая беда науки в том, что при восхитительной теории можно получить отвратительные результаты.
Просмотров: 18538
 
Автор темы   Непрочитано 14.02.2005, 15:52
#41
Mikhail

инженер-технолог (ГИП)
 
Регистрация: 11.09.2003
Санкт-Петербург
Сообщений: 1,144


уже пробовал... все равно
Код:
[Выделить все]
"CREATE TABLE MyBlockAttrTable1 (bName CHAR , NUMBER CHAR, SERVICE CHAR, DESCRIPTION CHAR, SEEWHAT CHAR, SIZE CHAR, MATERIAL CHAR, ATTACHMENT CHAR, LOCATION CHAR, REV CHAR, recID INTEGER NOT NULL CONSTRAINT key1 PRIMARY KEY );"
хотя в анг. аттрибутах до конца дописывается (до primery key....), а когда много русских аттрибутов, то не до конца заполняется функция, она обрывается вконце где то... или может отладчик целиком не выдает?...
А еще заметил при выборе блока без аттрибутов программа прорабатывает до конца, но в таблице не заполняется ничего, ни название блока, ни ключевое поле... Может в самом представлении SQL что то не то?
а почему на SQL создание таблицы? может как в предыдущей версии типа
Код:
[Выделить все]
tbl.Columns.Append "recID", adInteger
  
  ' à çàîäíî è èíäåêñà "PrimaryKey"
  Dim inx1 As New ADOX.Index
  inx1.PrimaryKey = True
  inx1.Name = "PrimaryKey"
  inx1.Columns.Append "recID"
  tbl.Indexes.Append inx1
  Set inx1 = Nothing
  
  ' åùå ïîëÿ...
  tbl.Columns.Append "ObjName", adWChar, 25
з.ы. кирилица видно только при вставке в форум не отображается корректно.
__________________
Большая беда науки в том, что при восхитительной теории можно получить отвратительные результаты.
Mikhail вне форума  
 
Непрочитано 14.02.2005, 17:56
#42
vk

сисадмин
 
Регистрация: 26.08.2003
Самара
Сообщений: 1,022
<phrase 1=


Чтоб кирилица при вставке в форум корректно показывалась - нужно перед копированием переключить раскладку клавы на RU. Проблема кажись только для ХРюши и 2000 винды

Чтоб посмотреть длиииинную строку, можно воспользоваться Immediate window (по Ctrl+G). Там напечатать
Цитата:
?sqlstr
и жмакнуть Enter. Это вроде консоли....

Цитата:
почему на SQL создание таблицы?
мне показалось так проще... И еще: почему то некоторые имена полей не удается назначить... попробую сделать блок с твоими атрибутами и посмотрю.
От способа создания таблицы это скорей всего не зависит.
vk вне форума  
 
Автор темы   Непрочитано 14.02.2005, 18:30
#43
Mikhail

инженер-технолог (ГИП)
 
Регистрация: 11.09.2003
Санкт-Петербург
Сообщений: 1,144


Хм, а на простеньком блоке сработало все...
Действительно какая то заморочка с тэгами
а CHAR это сколько символов? Хм еще раз...
__________________
Большая беда науки в том, что при восхитительной теории можно получить отвратительные результаты.
Mikhail вне форума  
 
Непрочитано 14.02.2005, 19:30
#44
vk

сисадмин
 
Регистрация: 26.08.2003
Самара
Сообщений: 1,022
<phrase 1=


Ага, значит так. Во первых, ругается на тэг NUMBER. С этим все понятно. Делаем префикс в виде скажем подчерка "_" - и закрываем проблему. Конечно, можно любые другие символы.

Вторая проблема связана с ограничением на длину записи. Уменьшаем длину текстовых полей. В примерчике до 50 знаков сократил. Кстати, с русскими именами полей (и вобще всего) могут быть проблемы при использовании нерусской версси Аксеса. Сам не проверял и не нарывался, но не зря ж говорят.....

Код:
[Выделить все]
    ' создание таблицы
    ' (в обязательном порядке создаются уникальный ключ и поле для имени блока)
    Dim sqlStr As String
    sqlStr = "CREATE TABLE " & tblName & suff & " (bName CHAR(50) "
    ' тэги атрибутов первого выбранного блока будут являться именами полей таблицы
    For Each i In ssetObj(0).GetAttributes
      sqlStr = sqlStr & ", _" & i.TagString & " CHAR(50) "
    Next
    sqlStr = sqlStr & ",recID INTEGER NOT NULL CONSTRAINT key1 PRIMARY KEY);"
    conn.Execute (sqlStr)
и чуть дальше
Код:
[Выделить все]
          For Each j In i.GetAttributes ' для каждого атрибута
            rstTbl.Fields("_" & j.TagString) = j.TextString
          Next
PS По умолчанию CHAR - это 255 символов.
PPS Дык на то он и простенький примерчик... Вспомнил фразу из одного известного фильма: "Вы слышали когда нибудь о героически погибшем экипаже тренажера?" (было сказано при погружении подводной лодки)
vk вне форума  
 
Автор темы   Непрочитано 15.02.2005, 11:14
#45
Mikhail

инженер-технолог (ГИП)
 
Регистрация: 11.09.2003
Санкт-Петербург
Сообщений: 1,144


Спасибо
вроде все более менее, хотя с русскими аттрибутами не работает, но там наверное просто надо их упростить до одного слова (вместо МЕСТО_УСТАНОВКИ наверное просто МЕСТО) написать ну или что то подобное. В общем упрощением аттрибутов буду заниматся.
А так для общего образования интересно просто
Цитата:
Цитата:
Цитата:
т.е. надо будет делать запрос которые будет создавать таблицу с "перевернутыми" в столбик аттрибутами. Такое возможно? (я на форуме по Аксесу вроде видел программу, но все таки засилие программ мне кажется может вызвать где то ошибку...)
Программы конечно хорошо, но не всегда приемлемо. А в Аксесе есть конструктор запросов. Во многих случаях можно создать запрос не зная языка SQL (пользуясь в основном мышкой). Хотя, лучше изучить. Не такой уж он сложный, к тому же есть описания на русском. Да и далеко не все доступно на уровне мышководства.
в запросах он вроде только столбцы в стольцы может выбрать, а вот чтобы из первого варианта программы (где все в строчки писались) сделать выборку, чтобы она выглядила так как сейчас выглядит я как то не допетрил пока. Там наверное надо какой то цикл делать типа по одинаковому знакчению ObjHandle сделать одну строчку ну или как то так, но я пока не догоняю
__________________
Большая беда науки в том, что при восхитительной теории можно получить отвратительные результаты.
Mikhail вне форума  
 
Автор темы   Непрочитано 15.02.2005, 12:12
#46
Mikhail

инженер-технолог (ГИП)
 
Регистрация: 11.09.2003
Санкт-Петербург
Сообщений: 1,144


и еще одна проблемма у меня только 6 аттрибутов можно занести, при большем количестве он ругается ...
[ATTACH]1108458758.jpg[/ATTACH]
__________________
Большая беда науки в том, что при восхитительной теории можно получить отвратительные результаты.
Mikhail вне форума  
 
Непрочитано 15.02.2005, 13:43
#47
vk

сисадмин
 
Регистрация: 26.08.2003
Самара
Сообщений: 1,022
<phrase 1=


Цитата:
Сообщение от Mikhail
в запросах он вроде только столбцы в стольцы может выбрать, а вот чтобы из первого варианта программы (где все в строчки писались) сделать выборку, чтобы она выглядила так как сейчас выглядит я как то не допетрил пока. Там наверное надо какой то цикл делать типа по одинаковому знакчению ObjHandle сделать одну строчку ну или как то так, но я пока не догоняю
Никаких циклов. Все делается в запросе на основе группировки и связывании нескольких экземпляров таблицы (по количеству атрибутов). Конечно, замудрено получится, но вроде как надежнее должно быть.

Цитата:
и еще одна проблемма у меня только 6 аттрибутов можно занести, при большем количестве он ругается ...
Дык еще вчера писал же про CHAR(50), чтоб подсократить длину поля... или попадаются атрибуты длиннее 50 символов? В принципе можно и это ограничение обойти.....

Если же имеется в виду ограничение на длину собираемой строки... ну если она будет слиииииишком длинная (кажется больше тыщи символов, точно не знаю), то можно ее разбить на несколько и собирать уже непосредственно при Execute
vk вне форума  
 
Автор темы   Непрочитано 15.02.2005, 14:21
#48
Mikhail

инженер-технолог (ГИП)
 
Регистрация: 11.09.2003
Санкт-Петербург
Сообщений: 1,144


Цитата:
Сообщение от vk
Цитата:
и еще одна проблемма у меня только 6 аттрибутов можно занести, при большем количестве он ругается ...
Дык еще вчера писал же про CHAR(50), чтоб подсократить длину поля... или попадаются атрибуты длиннее 50 символов? В принципе можно и это ограничение обойти.....
Странно... сейчас еще раз тот же самый блок вытащил без проблемм... Наверное действительно против глюка лучшее средство перезагрузить и попробывать еще раз.
Так что сейчас все нормально
__________________
Большая беда науки в том, что при восхитительной теории можно получить отвратительные результаты.
Mikhail вне форума  
 
Автор темы   Непрочитано 16.02.2005, 12:21
#49
Mikhail

инженер-технолог (ГИП)
 
Регистрация: 11.09.2003
Санкт-Петербург
Сообщений: 1,144


А вот небольшое дополнение возможно ли сделать? просто для дальнейшей автоматизации выбор объектов было бы не плохо сделать шаблон выбора. вот тут я тему поднял с выбором одинаковых блоков http://dwg.ru/forum/viewtopic.php?t=1128&start=15, может поможет. А вообще было бы хорошо просто в саму программу просто вписать названия типов блоков, аттрибуты из которых надо внести в базу.
Просто я что то попытался в языки с ходу вникнуть, но видно так все с кандачка не дается
так что сейчас могу на вас только надеятся
Спасибо.

ДОБАВЛЕННО:
Почему тип переменной CHAR? Просто когда ставишь CHAR(50), то и соответственно ширина столбца становится 50, а это когда смотришь на отчет отражается на его виде(т.е. каждая ячейка становится равно 50 символам, что не удобно.) А поставил тип данных TEXT все стало нормально, даже подгоняется по необходимости.

А еще такой вопрос. Что надо вставить программу, что бы при создании таблицы распечатывался отчет который уже настроен на данную таблицу. Кстати а переписывать таблицу можно? Чтобы не плодились 1,2,3,...
А так уже почти почти )
__________________
Большая беда науки в том, что при восхитительной теории можно получить отвратительные результаты.
Mikhail вне форума  
 
Непрочитано 16.02.2005, 19:16
#50
vk

сисадмин
 
Регистрация: 26.08.2003
Самара
Сообщений: 1,022
<phrase 1=


Цитата:
Сообщение от Mikhail
А вообще было бы хорошо просто в саму программу просто вписать названия типов блоков, аттрибуты из которых надо внести в базу.
Это можно попробовать привинтить как то так
Код:
[Выделить все]
   Dim gpCode(4) As Integer, dataValue(4) As Variant
  gpCode(0) = 0
  gpCode(1) = -4
  gpCode(2) = 2
  gpCode(3) = 2
  gpCode(4) = -4
  dataValue(0) = "Insert"
  dataValue(1) = "<OR"
  dataValue(2) = "bName1"
  dataValue(3) = "bName2"
  dataValue(4) = "OR>"
  Dim groupCode As Variant, dataCode As Variant
  groupCode = gpCode
  dataCode = dataValue
'  ThisDrawing.Utility.Prompt "Выбери БЛОКИ С ОДИНАКОВЫМИ ТЭГАМИ АТРИБУТОВ для экспорта в БД >"
'  ssetObj.SelectOnScreen groupCode, dataCode
  ssetObj.Select acSelectionSetAll, groupCode, dataCode
Цитата:
Просто когда ставишь CHAR(50), то и соответственно ширина столбца становится 50, а это когда смотришь на отчет отражается на его виде(т.е. каждая ячейка становится равно 50 символам, что не удобно.)
Дык тут же задается длина поля таблицы для хранения данных, а в отчете то поля делаются для отображения данных... Мдя, а они фиксированой длины... для отчета не есть гуд.
Цитата:
А поставил тип данных TEXT все стало нормально, даже подгоняется по необходимости.
Да, так в данном случае удобнее. Наверно лучше вроде TEXT(50), чтоб Аксес не воспринимал его как MEMO (ну если придется где то делать поиск например)

Цитата:
Что надо вставить программу, что бы при создании таблицы распечатывался отчет который уже настроен на данную таблицу. Кстати а переписывать таблицу можно? Чтобы не плодились 1,2,3,...
Чтоб не плодились - можно переписывать.... Если набор полей (или набор атрибутов - уже не знаю как оно организовано то сейчас) одинаковый - то можно таблицу не удалять а просто очищать от записей запросом на удаление. Скорей всего так будет даже проще, таблицу то можно сделать один раз ручками.
А чтоб автоматом печатался - тоже можно. Даже способов куча есть... Вам какой? :wink: Можно например сделать в Аксе макрос для печати который будет запускаться автоматически при открытии интерфейсной части БД (если предполагается одновременная работа нескольких пользователей - то лучше разделить таблицы и все остальное по разным файлам). Можно попробовать то же самое сделать на VBA из-под АКАДа непосредственно (сам не пробовал, возможно это не будет надежно). Можно программно запустить БД с соотв. аргументами командной строки (предварительно формируем программно) и там уже вызывать печать то что надо (этот способ наверняка более надежен, потому как не придется делать рефренсы на библиотеки Аксеса). Можно даже ярлычек отчета вытащить на рабочий стол (у меня через такие ярлычки, тока не на десктопе конечно, одно время печатались отчеты по заданиям в шедулере).
vk вне форума  
 
Автор темы   Непрочитано 17.02.2005, 13:07
#51
Mikhail

инженер-технолог (ГИП)
 
Регистрация: 11.09.2003
Санкт-Петербург
Сообщений: 1,144


тут ошибочка стала вылезать при очередной модификации программы есть у меня подозрение на
Код:
[Выделить все]
ssetObj.Select acSelectionSetAll, groupCode, dataCode
а может и нет.
по поводу печати... Просто ты присылал мне базу данных с макросом для Аксеса... я его тупа попытался вставить сюда, но видно как то его видоизменить надо, не только privat Sub убрать
Код:
[Выделить все]
Private Sub PrintReport_Click()
  DoCmd.OpenReport "qqq", acViewPreview
  Reports.Item("qqq")!Warning.Visible = False
  DoCmd.PrintOut
  DoCmd.Close acReport, "qqq"
End Sub
а вообще наверное интересно так... когда аттрибуты записались в таблицу, то выскакивает окошечко в АКАДе типа "распечатать или нет отчет?"
А по поводу таблицы... как проще будет или перезаписывать всю таблицу или только значения переделать. Т.е. наверное так. если таблицы нет она создается если таблица есть, то она переписывается. Думаю так оптимально... хотя пока не поработаешь пару неделек и не увидешь проблеммы, то сказать как лучше довольно трудно.
[ATTACH]1108634874.jpg[/ATTACH]
__________________
Большая беда науки в том, что при восхитительной теории можно получить отвратительные результаты.
Mikhail вне форума  
 
Непрочитано 17.02.2005, 17:59
#52
vk

сисадмин
 
Регистрация: 26.08.2003
Самара
Сообщений: 1,022
<phrase 1=


Цитата:
Сообщение от Mikhail
тут ошибочка стала вылезать при очередной модификации программы есть у меня подозрение на
Код:
[Выделить все]
ssetObj.Select acSelectionSetAll, groupCode, dataCode
а может и нет.
Это то что на картинке? Наверно в набор попал блок у которого отсутствуют атрибуты...

Цитата:
по поводу печати... Просто ты присылал мне базу данных с макросом для Аксеса... я его тупа попытался вставить сюда, но видно как то его видоизменить надо, не только privat Sub убрать
Угу. Если ничего не путаю, DoCmd - это объект Аксеса а не АКАДа, соответственно, к нему надо обращаться указывая конкретно приложение, а не по умолчанию. Скорей всего так, сам не пробовал. Но по любому, сначала придется из VBA-АКАДа открыть БД. Может быть, более простой способ будет посредством Shell вызывать макрос (через ярлык), который печатал бы отчет.... По крайней мере, практически это всего одна строчка в VBA (если без проверок)

Цитата:
А по поводу таблицы... как проще будет или перезаписывать всю таблицу или только значения переделать.
Большой разницы нет. Удалить все данные из таблицы - две-три строчки кода (запрос DELETE). А вот удалять таблицу или нет... если набор полей всегда одинаковый - то нафига же ее удалять-создавать каждый раз? Пусть живет
В принципе, если набор полей фиксированый, то прогу можно существенно подсократить... Кстати, ВСЕ ЛИ выбираемые блоки обязаны иметь атрибуты? Если некоторые блоки без атрибутов - то этот момент надо тоже обрабатывать.

PS Кажется уже пол-месяца тема актуальна? :wink:
vk вне форума  
 
Автор темы   Непрочитано 18.02.2005, 09:49
#53
Mikhail

инженер-технолог (ГИП)
 
Регистрация: 11.09.2003
Санкт-Петербург
Сообщений: 1,144


Цитата:
Сообщение от vk
Это то что на картинке? Наверно в набор попал блок у которого отсутствуют атрибуты...
Да вроде нет. Там я правильно понял за место
Код:
[Выделить все]
dataValue(0) = "Insert" 
  dataValue(1) = "<OR" 
  dataValue(2) = "bName1" 
  dataValue(3) = "bName2" 
  dataValue(4) = "OR>"
bName1 и bName2 написать имена двух моих блоков с одинаковыми аттрибутами? А что такое за "<OR"?
Цитата:
Большой разницы нет. Удалить все данные из таблицы - две-три строчки кода (запрос DELETE). А вот удалять таблицу или нет... если набор полей всегда одинаковый - то нафига же ее удалять-создавать каждый раз?
Я ЗА! Мне не надо бессмысленное стирание таблиц, еще скажут что я таблицененавистник
Цитата:
В принципе, если набор полей фиксированый, то прогу можно существенно подсократить... Кстати, ВСЕ ЛИ выбираемые блоки обязаны иметь атрибуты?
Да поля фиксированные для опредленных наборов блоков, т.е. я все таки наверное за то, чтобы для выделения аттрибуты с арматурой один макрос, для выделения аттрибутов с КИПом другой. Так же и таблицы. А аттрибуты имеют все выделяемые блоки. Думаю Это обрабатывать не надо. Я просто при создании самих блоков с аттрибутами прослежу за их идентичностью.
Цитата:
PS Кажется уже пол-месяца тема актуальна? :wink:
Общение с умными людьми всегда актуально Да и пока окончательного решения нет останавливатся не стоит, если конечно я еще не достал тебя ....
__________________
Большая беда науки в том, что при восхитительной теории можно получить отвратительные результаты.
Mikhail вне форума  
 
Непрочитано 18.02.2005, 11:19
#54
Alan

CAD
 
Регистрация: 28.08.2003
Киев
Сообщений: 1,834
<phrase 1=


Вопрос к автору темы. Mikhail, отчёт это спецификация? Если да, то мы тут в соседней ветке http://dwg.ru/forum/viewtopic.php?t=2889
начинали, да что-то закончили на моём вопросе-опросе. Прошу участников этой темы просветить. Считывание атрибутов с чертежа (имя атрибута + количество) мы соединили с пристёжкой к ним характеристик оборудования из имеющейся базы.
Alan вне форума  
 
Автор темы   Непрочитано 18.02.2005, 12:15
#55
Mikhail

инженер-технолог (ГИП)
 
Регистрация: 11.09.2003
Санкт-Петербург
Сообщений: 1,144


Цитата:
Сообщение от Alan
Вопрос к автору темы. Mikhail, отчёт это спецификация?
Да спецификация. Вот уже 4 страницы тут понакатали Конечно можно все автоматизировать, но для начала хотя бы концептуальную так сказать разработку сделать. А потом заполнить все эти аттрибуты в схеме. А потом уже улучшать и дополнять.
__________________
Большая беда науки в том, что при восхитительной теории можно получить отвратительные результаты.
Mikhail вне форума  
 
Непрочитано 18.02.2005, 14:12
#56
vk

сисадмин
 
Регистрация: 26.08.2003
Самара
Сообщений: 1,022
<phrase 1=


[quote="Mikhail"]Да вроде нет......
Цитата:
Сообщение от vk
bName1 и bName2 написать имена двух моих блоков с одинаковыми аттрибутами? А что такое за "<OR"?
Да, правильно. OR это ИЛИ по-аглицки. Вполне возможно, что получится и без него, перечислив имена блоков через запятую, как это делается в Лиспе. Однако, почему то я про это забываю постоянно.... :?
А что попало в набор и почему оно не обрабатывается... Сложно догадываться на большом расстоянии, когда под руками нет

Да, вот накорябал код в продолжение предыдущего, чтоб сразу выгонять на печать (с подтверждением). Правда таблицы не удаляю и не очищаю (а может пусть хранятся типа для истории? ). Просто выводится на принтер отчет с последней созданной таблицей.
Код:
[Выделить все]
...............................
    conn.Close ' закрываем подключение к БД
    Set conn = Nothing
  End If
  
  Set i = Nothing
  Set j = Nothing
  Set ssetObj = Nothing
  If MsgBox("Печатать будем?", vbYesNo + vbApplicationModal + vbQuestion, _
  "Таблица готова, что дальше?") = vbYes Then Call PrintReport(suff)
End Sub

Sub PrintReport(tabSuf As Integer)
  Dim fileName As String
  fileName = "C:\MyNewDB1.mdb" ' файл БД
  Dim repName As String
  repName = "MyReport1" ' имя отчета
  Dim tblName As String
  tblName = "MyBlockAttrTable" ' имя таблицы (постоянная часть)

  ' надобно прицепить рефренс "Microsoft Access 10.0 Object Library"
  Dim acsApp As New Access.Application
  With acsApp
    .OpenCurrentDatabase fileName
'    .Visible = True ' видимость Акса на экране (в принципе не нужна)
    .DoCmd.OpenReport repName, acViewDesign
    .Reports.Item(repName).RecordSource = tblName & tabSuf ' назначение таблицы-источника
    .DoCmd.OpenReport repName, acViewPreview
'    .Reports.Item(repName)!Warning.Visible = False
    .DoCmd.PrintOut
    .DoCmd.Close acReport, repName, acSaveNo ' закрыть без изменений
    .CloseCurrentDatabase
    .Quit
  End With
  Set acsApp = Nothing
  MsgBox "Получите у Printer'а листов пачку.", vbInformation, "Отправлено на печать"
End Sub
Ну это так, чтоб убедиться что работает. Если сохранять таблицы для истории - то можно в имя таблицы впихнуть имя файла чертежа. Однако, тогда обвинят в размножении таблиц. Более правильно создать еще одно поле с именем чертежа (еще более правильно - с числовым идентификатором имени чертежа) и по нему задавать условие отбора при открытии отчета. Таблица одна на все чертежи. Впрочем, это только мысли.
vk вне форума  
 
Автор темы   Непрочитано 18.02.2005, 17:00
#57
Mikhail

инженер-технолог (ГИП)
 
Регистрация: 11.09.2003
Санкт-Петербург
Сообщений: 1,144


Всё таки блоки не выделяются при написании их имен в теле программы. Т.е. ошибка та осталась. Вот пример аттрибутов название их VLVBF и VLVBLS, а название аттрибутов в картинке. При их простом выделении они в базу данных нормально записываются.

А печатается на ура Только там с 2003 Аксесом какая то заморочка он мне засранец табличку выкидывает типа "Открыть ли эту чертовски небезопасную схему?"

p.s. Удачных выходных, а я пойду машину мастеру тащить... Эх автопром и кривые руки
[ATTACH]1108735216.jpg[/ATTACH]
__________________
Большая беда науки в том, что при восхитительной теории можно получить отвратительные результаты.
Mikhail вне форума  
 
Непрочитано 18.02.2005, 17:36
#58
vk

сисадмин
 
Регистрация: 26.08.2003
Самара
Сообщений: 1,022
<phrase 1=


Не совсем понятно, КАК именно должен делаться выбор. Полностью автоматом ssetObj.Select acSelectionSetAll, groupCode, dataCode или ручками на экране ssetObj.SelectOnScreen groupCode, dataCode Может в этом проблема? Или же требуется оставить подсветку после автоматического выбора... Если ничто не помогает, замыль мне файлы чертежа и VBA-макроса, попробую разобраться, может какие ньюансы.....

Про "чертовски небезопасную схему" ничего сказать не могу. Может что то с настройками Акса, а может особенность 2003 версии... Сам пользую OfficeXP (вот такой вот ретроград ), так что проверить не смогу. Попробуй задать этот вопрос на форуме по Аксесу, хотя, вполне возможно, он там уже задавался (удивительно, но там умудряюсь находить ответы на 90% возникающих вопросов - все уже спрошено до нас ). Наверняка программно можно отключить вывод сообщения.
vk вне форума  
 
Автор темы   Непрочитано 18.02.2005, 18:18
#59
Mikhail

инженер-технолог (ГИП)
 
Регистрация: 11.09.2003
Санкт-Петербург
Сообщений: 1,144


to vk
Все нормально заработало... Какой то файл глючный... теже самые блоки копирую в другой чертеж и там выборка нормально происходит... Мрак. Ладно будем боротся.
Еще раз спасибо
__________________
Большая беда науки в том, что при восхитительной теории можно получить отвратительные результаты.
Mikhail вне форума  
 
Автор темы   Непрочитано 21.02.2005, 09:49
#60
Mikhail

инженер-технолог (ГИП)
 
Регистрация: 11.09.2003
Санкт-Петербург
Сообщений: 1,144


Доброго начала недели
В общем такая ситуевина... Есть блоки в файле, когда выборку их делаешь выделением, то все работает. Когда выборку их делаешь написанием их имен в теле программы, тогда не работает. (пишется та ошибка). Если эти блоки скопировать в пустой чертеж, то программа работает в любом случае. А вот если в этом новом чертеже ввести еще что то (линию, полилинию ...), то опять вылезает ошибка. Я так думаю когда имя аттрибута пишется в проге, то там что то не так и программа считывает не только эти локи, но и все примитивы... А там естественно аттрибутов нет. и поэтому ошибка.
Поможите люди добрые
__________________
Большая беда науки в том, что при восхитительной теории можно получить отвратительные результаты.
Mikhail вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Формирование отчета в Acess в виде таблице.