powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / VFP и ACCESS
9 сообщений из 9, страница 1 из 1
VFP и ACCESS
    #33697703
Фотография Владимир СА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1. У меня есть код в БД ACCESS-а :
Код: plaintext
Sub RenameFields()\n\n    Dim db As DAO.Database\n    Dim tdf As DAO.TableDef\n    Dim fld As DAO.Field\n    Set db = CurrentDb\n    \n    For Each tdf In db.TableDefs\n        If Left(tdf.Name,  4 ) <> "MSys" Then\n            For Each fld In tdf.Fields\n                If Left(fld.Name,  1 ) Like "[1-9]" Then\n                    fld.Name = "C" & fld.Name\n                End If\n            Next fld\n        End If\n    Next tdf\n    \n    Set db = Nothing\nEnd Sub
Его мне помогли написать из форума ACCESS, спасибо им.
Код делает следующее: проверяет все поля таблиц текущей БД и если имя поля числовое (видимо это разрешается в access-е), то заменяет это имя, которое теперь будет начинаться с символа "C".
После этого я работаю с этими таблицами в FOX-е. Но код в БД я вставил лично, что невозможно сделать будет у заказчика. Как этот код записать в VFP используя COM-сервер (типа работы с EXCEL-ом)???
2. При запуске в VFP кода (спасибо 5631):
Код: plaintext
LOCAL Ac\nAc=CREATEOBJECT("Access.Application")\nAc.Visible=.F.\nAc.OpenCurrentDatabase("D:\\Sv\\GB\\1\\OEFData.mdb")\nAc.Run("RenameFields")
Выскакивает "ПРЕДУПРЕЖДЕНИЕ СИСТЕМЫ БЕЗОПАСНОСТИ" при открытии файла. Как мне его убрать???
...
Рейтинг: 0 / 0
VFP и ACCESS
    #33697728
Sea.s2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Нельзя?
ac.DisplayAlerts = .F.
...
Рейтинг: 0 / 0
VFP и ACCESS
    #33697746
Фотография Владимир СА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sea.s2Нельзя?
ac.DisplayAlerts = .F.Выдает ошибку
...
Рейтинг: 0 / 0
VFP и ACCESS
    #33697774
5631
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DisplayAlerts = False
Но перед этим #Define False .F.
А , вообще, в Access безопасность макросов какая стоит ?
...
Рейтинг: 0 / 0
VFP и ACCESS
    #33697810
Фотография Владимир СА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
5631DisplayAlerts = False
Но перед этим #Define False .F.По всякому, тоже самое.
5631А , вообще, в Access безопасность макросов какая стоит ?Средняя. Но я, ее все равно не поменяю у заказчика, прежде чем открыть БД.
...
Рейтинг: 0 / 0
VFP и ACCESS
    #33697916
5631
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Скорей всего причина в уровне безопасности. Надо поставить низкую. Вообще, такие вопросы лучше задавать на форуме по Access.
http://www.sql.ru/forum/actualtopics.aspx?bid=4
...
Рейтинг: 0 / 0
VFP и ACCESS
    #33698690
petkata
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ALTER TABLE попробовал?
...
Рейтинг: 0 / 0
VFP и ACCESS
    #33700002
Igor Korolyov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hi Владимир!

Может быть проще прямо на клиенте производить преобразование имён?
Со стороны фокса без проблем работает конструкция:

SELECT [1] AS c1, [имя с пробелами] AS c2 FROM [3 4 5 тоже плохое имя]

Т.е. для полей с "плохими" именами задаются приемлемые для фокса новые
имена. Также видно как можно обращаться с "плохими" именами таблиц.
Никаких проблем с безопасностью такой способ не влечёт - и как большой
плюс - не меняется структура таблиц в Access :)

Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
VFP и ACCESS
    #33701949
Фотография Владимир СА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Igor Korolyov
Hi Владимир!

Может быть проще прямо на клиенте производить преобразование имён?
Со стороны фокса без проблем работает конструкция:

SELECT [1] AS c1, [имя с пробелами] AS c2 FROM [3 4 5 тоже плохое имя]

Т.е. для полей с "плохими" именами задаются приемлемые для фокса новые
имена. Также видно как можно обращаться с "плохими" именами таблиц.
Никаких проблем с безопасностью такой способ не влечёт - и как большой
плюс - не меняется структура таблиц в Access :) Спасибо Игорь , что откликаетесь на мои проблемы, но у меня интересный случай вид таблицы заказчика такой:
Имена полей: | Id | VarMnem | CrCode | 198801 | 198901 | 199001 |....
Т.е. каждый год добавляются новые имена полей , причем в год м.б. добавлено несколько полей. И таких таблиц несколько.
Я понимаю, что построение таблицы неправильное. Но ничего не поделаешь. Страшно, что критерий максимального кол-ва полей 255 у Fox-а. Незнаю сколько у Access-а. Задача моя перегонять данные из MDB -> MS SQL Server 2000. Конечно м.б. перегонять из самого Access-а, но задача намного сложнее, чем я тут показываю, поэтому использую FOX. Мне на нем проще. Но я написал аналог подпрограммы, показанный вверху, используя COM-сервер. Если кому интересно выкладываю:
Код: plaintext
m.c_dir_rab = "D:\\Sv\\GB\\11\\"\nLOCAL Ac as Access.Application\nAc=CREATEOBJECT("Access.Application")\nAc.Visible=.F.\n*  QueriData\n? \'******** QueriData  ****************\'\nAc.OpenCurrentDatabase(m.c_dir_rab+"QueriData.mdb")\n\nn_tabl_count = Ac.CurrentDb.TableDefs.Count\n?n_tabl_count\n\nFOR j =  0  TO n_tabl_count -  1 \n  c_table = Ac.CurrentDb.TableDefs(j).Name\n  IF LEFT(c_table,  4 ) <> "MSys"\n    ? c_table\n    FOR i =  0  TO Ac.CurrentDb.TableDefs.Item(c_table).Fields.Count -  1 \n      IF BETWEEN(LEFT(Ac.CurrentDb.TableDefs.Item(c_table).Fields(i).Name, 1 ),\'0\',\'9\')\n        Ac.CurrentDb.TableDefs.Item(c_table).Fields(i).Name = ;\n                    "C"+Ac.CurrentDb.TableDefs.Item(c_table).Fields(i).Name\n      ENDIF\n    ENDFOR && i\n  ENDIF\nENDFOR && j\nAc.CloseCurrentDatabase
Этот блок делает тоже самое, что и представлено в коде VBA (вверху).
Теперь по поводу БЕЗОПАСНОСТИ. Оказывается безопасность устанавливается не на MDB-файл, а прописывается в реестре на USER-а. Об этом рассказано тут. Т.е. я досконально еще не занимался этим, но вижу проблема разрешима. Спасибо всем.
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / VFP и ACCESS
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]