Форум программистов, компьютерный форум, киберфорум
Microsoft Access
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/9: Рейтинг темы: голосов - 9, средняя оценка - 4.67
895 / 285 / 50
Регистрация: 02.12.2014
Сообщений: 1,229
1

Изменить свойство SourceTableName - ?

18.02.2015, 17:40. Показов 1735. Ответов 3
Метки нет (Все метки)

Еще раз добрый день. Есть прилинкованная таблица Excel. У нее соответственно есть свойство SourceTableName, в котором записано имя листа экселя. Хотел "по-доброму" поменять это свойство в тексте кода, на что получил ошибку 3268. Неожиданно. Не пойму, почему путь к файлу МОЖНО поменять, а имя листа - НЕТ?.. Ну, к кажущемуся отстутствию здравого смысла в некоторых случаях я уже привык, но хотелось бы знать, как все-таки можно справиться с проблемой, то есть перелинковать таблицу программно, если сменилось имя листа (и я это новое имя знаю и ввел в поле на форме, например).
Нашел что-то по данному вопросу вот тут:
http://www.access-programmers.... p?t=134557
но в английском как-то не особо силен, это и правда то, что нужно?.. Насколько я понял, там советуют создавать новую таблицу, а старую удалять. Бррр....
Заранее спасибо за ответ)

Добавлено через 46 минут
Пошарил еще другие форумы гуглом - получается, везде одни и те же грабли. Это свойство что - сугубо для чтения?.. Странная политика) Из всего прочитанного понимаю, что другого варианта кроме создания новой таблицы и переноса ее свойств в новую, нету...
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
18.02.2015, 17:40
Ответы с готовыми решениями:

Invalid Operation - возможно, ли изменить свойство
Делаю так: Dim db As Database Dim tdf As TableDef Set db = CurrentDb Set tdf =...

Программно изменить свойство поля таблицы на обязательное
Добрый день, создаю программно таблицу в разделенной БД. Нужно изменить свойство поля на...

Изменить свойство компонента
Создал проект, кинул TextBox на форму, пишу в функции main его имя - подсвечивается красным, вроде...

Изменить свойство Text кнопки
здравствуйте друзья я начал разбираться в С# буквально два дня назад. так што если я спрашиваю...

3
Эксперт MS Access
26726 / 14405 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
18.02.2015, 17:51 2
Лучший ответ Сообщение было отмечено Kkarn как решение

Решение

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

И второе. Зачем Вам вообще связываться с линковкой. Не нужна она. Удобнее пользоваться запросами к листу. Типа
SQL
1
2
SELECT *
FROM [Лист1$] IN 'c:\tempнигаекселя.xls'[Excel 8.0;IMEX=2;hdr=YES;]
Доступ ничуть не медленее. Зато в коде можно как угодно строить динамически изменяемый запрос. В том числе и другими листами, другими книгами и т.д., и т.п. Если интересует мое мнение, то я уже давно не линкую таблиц екселя. Только запросами.
1
895 / 285 / 50
Регистрация: 02.12.2014
Сообщений: 1,229
18.02.2015, 18:13  [ТС] 3
mobile, Хм... Я как-то не смотрел на это с такой точки зрения... Ну, чтобы делать запросы непосредственно к файлам экселя. Это для меня как-то внове)... Да и вся база у меня уже выстроена на присоединенных таблицах, а уже к ним построены все запросы. Как-то лень мне все перестраивать)... Но на будущее - нужно будет поинтересоваться в эту сторону, спасибо)
Насчет свойства SourceTableName - примерно умом понял, что вы имеете в виду, но вот "сердцем" - как-то нет))) Для меня это - вроде такое же самое свойство, как путь к файлу. И мозг упирается, почему я могу поменять путь, а имя файла - нет) И, судя по количеству форумов, которые я уже успел облазить с этим вопросом - я не один такой, хоть это радует...)

Добавлено через 7 минут
А можете подсказать поподробнее, где почитать на предмет вот таких прямых запросов к экселю?.. А то заинтересовало, а я не силен во всех этих "IMEX=2;hdr=YES;", все SQL запросы строю сначала в конструкторе, а потом уже смотрю, какой получился - и вставляю его текст в код, если нужно...
0
Эксперт MS Access
26726 / 14405 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
18.02.2015, 18:49 4
Цитата Сообщение от Kkarn Посмотреть сообщение
вся база у меня уже выстроена на присоединенных таблицах, а уже к ним построены все запросы
Так нет проблемы в этом. Создать запрос и назвать его также как называлась таблица. Таблицу, конечно удалить надо перед этим. Таблицы и запросы в одном пространстве объектов (хотя и в разных семействах) и повторение имен невозможно.

Excel 8.0 это для офиса 2003, для файлов *.XLS. Для файлов *.XLSX, *.XLSM версия меняется на 12.0: Excel 12.0
Параметр IMEX говорит о том как сочетать цифровые и числовые значение в столбце. Безопаснее IMEX-2.
Параметр HDR показывает является ли первая строка диапазона названием поля. Если YES - да, является. NO - нет, не является.

Для начала Вы можете попробовать только с той таблицей, у которой надо поменять название листа.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
18.02.2015, 18:49

Изменить свойство элемента из другого
Здравствуйте. Необходимо при нажатии на кнопку переключать Expander. Приведите пример подобного...

Изменить свойство и содержимое объекта
Создать HTML-файл версии 5, содержащий javascript. Получить доступ к элементу объекта document по...

Изменить свойство у нескольких контроллов
Например: private void button4_Click(object sender, EventArgs e) { ...

Не могу изменить свойство экрана
Добрый День всем. Проблема в следующем. Не могу окрыть свойство экрана. Ни с рабочего стола, ни с...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru