Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Access
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 15.09.2012, 23:44   #1
Вадичок
Пользователь
 
Регистрация: 09.09.2012
Сообщений: 87
По умолчанию Связывание таблиц в Access

Подскажите пожалуйста можно ли связать таблицы при импорте данных с екселя в аксес, чтобы импорт не зависел от того как называются таблицы в екселе?
Вадичок вне форума Ответить с цитированием
Старый 16.09.2012, 09:12   #2
Андрэич
Форумчанин
 
Аватар для Андрэич
 
Регистрация: 20.05.2012
Сообщений: 311
По умолчанию

Цитата:
Сообщение от Вадичок Посмотреть сообщение
можно ли связать таблицы при импорте



чтобы импорт не зависел от того как называются таблицы в екселе?
Таблицы с данными либо импортируются - копируются в текущий файл, либо связываются (в текущем проекте в окне базы данных появляются ярлычки). Это разные действия.

В предположении, что речь идет о разных именах внешней и "собственной" таблиц.
При связывании или импорте мастером он сам предлагает выбрать имя, под каким этот объект будет сохранен.

Если программно.
При линковке (связывании) - имя связанной таблицы можно сделать любым, как это показано в соседнем топике: в коде достаточно изменить имя создаваемой таблицы на нужное:
Код:
Dim db As Database
Dim tdf As TableDef
Set db = CurrentDb
Set tdf = db.CreateTableDef("НовоеИмя")
tdf.Connect = ";DATABASE=C:\Documents and Settings\Андрэич\Рабочий стол\Companies.accdb"
tdf.SourceTableName = "Фирмы"
db.TableDefs.Append tdf
То же и при импорте. Конкретную реализацию можно дать, опираясь на ваш уже имеющийся код

Note. Старайтесь избегать повторения вопросов в разных топиках (темах) - кросспостинга. Это трудно отслеживать и отвечать

Последний раз редактировалось Андрэич; 16.09.2012 в 09:18.
Андрэич вне форума Ответить с цитированием
Старый 16.09.2012, 17:45   #3
Вадичок
Пользователь
 
Регистрация: 09.09.2012
Сообщений: 87
По умолчанию

Цитата:
Сообщение от Андрэич Посмотреть сообщение
Таблицы с данными либо импортируются - копируются в текущий файл, либо связываются (в текущем проекте в окне базы данных появляются ярлычки). Это разные действия.

В предположении, что речь идет о разных именах внешней и "собственной" таблиц.
При связывании или импорте мастером он сам предлагает выбрать имя, под каким этот объект будет сохранен.

Если программно.
При линковке (связывании) - имя связанной таблицы можно сделать любым, как это показано в соседнем топике: в коде достаточно изменить имя создаваемой таблицы на нужное:
Код:
Dim db As Database
Dim tdf As TableDef
Set db = CurrentDb
Set tdf = db.CreateTableDef("НовоеИмя")
tdf.Connect = ";DATABASE=C:\Documents and Settings\Андрэич\Рабочий стол\Companies.accdb"
tdf.SourceTableName = "Фирмы"
db.TableDefs.Append tdf
То же и при импорте. Конкретную реализацию можно дать, опираясь на ваш уже имеющийся код

Note. Старайтесь избегать повторения вопросов в разных топиках (темах) - кросспостинга. Это трудно отслеживать и отвечать
Хочу чтобы Вы понимали ситуацию: у меня будут постоянно поступать таблицы-данные в екселе, я их связываю(прилинковываю) в аксес, там с помощью запросов делаю то, что мне нужно. Потом эти запросы собираю в один и назад связываю в ексель. Но данные будут поступать в ексель-таблицы ежемесячно новые. Вопрос в чем: при связывании, указывая путь к файлу, он имеет определенное имя. При последуюющему сохранению в эту папку ексель-таблиц мне нужно называть их так же(заменить предыдущий файл), чтобы данные подтянулись в аксес или можно как то сделать чтобы вне зависимости от названия ексель-файла все четко работало?
Вадичок вне форума Ответить с цитированием
Старый 16.09.2012, 21:21   #4
Teslenko_EA
Участник клуба
 
Регистрация: 10.08.2009
Сообщений: 1,796
По умолчанию

Здравствуйте Вадичок.
"Хочу чтобы Вы понимали ситуацию:.." - желание похвально, но не думаю что Вам это удалось.

"..будут постоянно поступать таблицы-данные в екселе.." - понятно.
"..я их связываю.." - понятно.
"..делаю то, что мне нужно.." - понятно.

А затем начинаются вопросы к Вашему объяснению:
"..эти запросы собираю в один.." - текст запроса или данные объединяются?
"..и назад связываю в ексель.." - ???

"..вне зависимости от названия ексель-файла все четко работало.." - пока не будет разъяснения
что значит "запросы собираю в один" и "назад связывание" вопрос скорее всего останется без ответа.

Евгений.

P.S. не стоит заниматься бесполезным цитированием постов, это не добавляет информативности Вашему сообщению.
Teslenko_EA вне форума Ответить с цитированием
Старый 16.09.2012, 22:03   #5
Вадичок
Пользователь
 
Регистрация: 09.09.2012
Сообщений: 87
По умолчанию

"..эти запросы собираю в один.." - имеется в виду что я с помощью запроса Union all, объединяю несколько предыдущих запросов, а таким образом свожу данные.
"..и назад связываю в ексель.." - имеется в виду, что я создаю пустой екселевский файл и с помощью "получить данные из аксес", связываю данные, чтобы они эти сводные данные на регулярной основе в конечном итоге подтягивались в ексель.
Надеюсь теперь доступно объяснил
Вадичок вне форума Ответить с цитированием
Старый 17.09.2012, 19:37   #6
Teslenko_EA
Участник клуба
 
Регистрация: 10.08.2009
Сообщений: 1,796
По умолчанию

"..свожу данные .. чтобы они .. в конечном итоге подтягивались в ексель.." -
Теперь совсем не понятно, зачем Вам MS Access если данные собираются в документах Excel и в Excel возвращаются?
Евгений.
Teslenko_EA вне форума Ответить с цитированием
Старый 17.09.2012, 20:48   #7
Вадичок
Пользователь
 
Регистрация: 09.09.2012
Сообщений: 87
По умолчанию

Евгений, таким образом я делаю нужные мне рассчеты. Но вопрос не в этом...
Вопрос в чем: при связывании, указывая путь к файлу, он имеет определенное имя. При последуюющему сохранению в эту папку ексель-таблиц мне нужно называть их так же(заменить предыдущий файл), чтобы данные подтянулись в аксес или можно как то сделать чтобы вне зависимости от названия ексель-файла все четко работало?
Вадичок вне форума Ответить с цитированием
Старый 17.09.2012, 20:49   #8
Вадичок
Пользователь
 
Регистрация: 09.09.2012
Сообщений: 87
По умолчанию

Евгений, можно ли сделать так, чтобы данные связывались в аксес, не взираю на то, каким будет имя екселевского файла. Объяснил очень доступно...
Вадичок вне форума Ответить с цитированием
Старый 17.09.2012, 23:09   #9
Myhaylo
Форумчанин
 
Регистрация: 19.07.2012
Сообщений: 520
По умолчанию

Например, создать запрос с использованием предложения IN. Из справки MS Access 97:

Книга Microsoft Excel (файл .xls).
Файл ДанныеXL.xls является книгой Microsoft Excel, содержащей лист с именем Клиенты. ДиапазонКлиентов*– это поименованный диапазон листа. Следует отметить, что для указания в качестве таблицы целого листа, необходимо добавить к нему знак доллара ($) и заключить имя в квадратные скобки.

SELECT КодКлиента, Название
FROM [Клиенты$]
IN 'C:\Мои документы\ДанныеXL.xls' 'EXCEL 5.0;'
WHERE КодКлиента Like 'A*';

–*или*–

SELECT КодКлиента, Название
FROM ДиапазонКлиентов
IN 'C:\Мои документы\ДанныеXL.xls' 'EXCEL 5.0;'
WHERE КодКлиента Like 'A*';
Окупант, руки прочь от Украины!!! Слава Героям!
Myhaylo вне форума Ответить с цитированием
Старый 18.09.2012, 00:21   #10
Вадичок
Пользователь
 
Регистрация: 09.09.2012
Сообщений: 87
По умолчанию

Myhaylo, интересует где писать в запросе table_name1.column_name AS Name (где переназвать столбец таблицы) в конкретном случае?

SELECT *
FROM table_name1
INNER JOIN table_name2
ON table_name1.column_name=table_name2 .column_name
Вадичок вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
связывание таблиц access mssql aaaaa52 Microsoft Office Access 1 08.06.2012 07:35
связывание таблиц access mssql aaaaa52 Общие вопросы по программированию, компьютерный форум 0 07.06.2012 19:35
связывание таблиц RamireZ БД в Delphi 0 25.05.2010 15:40
связывание таблиц vaso1983 БД в Delphi 0 17.05.2009 21:33
Связывание таблиц FoxPro в Access 2002 Nessa Microsoft Office Access 2 04.11.2007 09:54