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

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

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

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 21.05.2009, 18:18   #1
anridka
 
Аватар для anridka
 
Регистрация: 21.12.2008
Сообщений: 5
По умолчанию Единая база в Excel на сервере. Как?

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

Как сделать так, чтобы одновременно вносили данные несколько сотрудников не мешая друг другу, а то постоянно приходится просить "выйти" из таблицы коллег?
За ранее спасибо!
anridka вне форума Ответить с цитированием
Старый 21.05.2009, 19:03   #2
Folder
 
Регистрация: 21.05.2009
Сообщений: 3
По умолчанию

Поставить MS SQL и хранить все данные там. А сам excel юзать как интерфейс
Folder вне форума Ответить с цитированием
Старый 22.05.2009, 00:21   #3
mchip
Форумчанин
 
Регистрация: 24.06.2008
Сообщений: 516
По умолчанию

Хранить информацию в Access, а подключаться Excelем
Можно сделать все! Было бы время, да деньги...
mchip вне форума Ответить с цитированием
Старый 22.05.2009, 09:13   #4
anridka
 
Аватар для anridka
 
Регистрация: 21.12.2008
Сообщений: 5
По умолчанию

Цитата:
Сообщение от mchip Посмотреть сообщение
Хранить информацию в Access, а подключаться Excelем
Понять бы как это сделать. Может подскажите.
anridka вне форума Ответить с цитированием
Старый 22.05.2009, 09:32   #5
mchip
Форумчанин
 
Регистрация: 24.06.2008
Сообщений: 516
По умолчанию

Ну вот так для начала:
http://office.microsoft.com/ru-ru/ex...963001049.aspx
Можно сделать все! Было бы время, да деньги...
mchip вне форума Ответить с цитированием
Старый 22.05.2009, 16:31   #6
Folder
 
Регистрация: 21.05.2009
Сообщений: 3
По умолчанию

К примеру я делаю так. Настроил MS SQL/ Создал там таблици и юзаю из макросов excel-я

Dim server As String: server = "STURM\SQLEXPRESS"
Dim catal1 As String: catal1 = ServerCatalog ' тут имя каталога
Dim UserId As String: UserId = UserLogin ' тут логин
Dim Passwo As String: Passwo = UserPass ' тут пароль
connString = "Provider=SQLOLEDB;Persist Security Info=False;Password=" & Passwo & ";User ID=" & UserId & ";Initial Catalog=" & catal1 & ";Data Source=" & server
Dim conn As ADODB.Connection
Set conn = New ADODB.Connection
Dim rst As ADODB.Recordset
Set rst = New ADODB.Recordset
conn.Open connString
rst.ActiveConnection = conn
' тут любой SQL запрос
rst.Open "SELECT IDSklad, ShotName FROM tbl_Skladi"
' есть много способов потом данные запроса вывести в таблицу.

' можно по полям
While Not rst.EOF
Cells(19, 1) = rst(0) ' по номеру поля
Cells(19, 2) = rst("ShotName") ' по названию поля

rst.MoveNext
Wend

' а можно выкинуть все целиком
Cells(6, 10).CopyFromRecordset rst

Подобно можно работать и с файлом Акцеса (только строка соединения другая). Но там недостаток. При каждом запросе на комп юзера сстягивается весь фаил что перегружает сеть. При MS SQL - по сети идет только запрашиваемая информация.
Вот пример по Акцесу.

base = "c:\basa.mdb" ' тут путь к файлу
connString = "Provider= Microsoft.Jet.OLEDB.4.0;Data Source= " & base & ";mode=Read|Write|Share Deny None"
Dim conn As ADODB.Connection
Set conn = New ADODB.Connection
Dim rst As ADODB.Recordset
Set rst = New ADODB.Recordset
conn.Open connString
rst.ActiveConnection = conn


sqlString = "UPDATE tbl_OperationDetail SET ПриходБуфер = 0, РасходБуфер = 0, БуферНаМаг = 0 WHERE СчетчикОпераций <> 1"
conn.Execute sqlString
Folder вне форума Ответить с цитированием
Старый 22.05.2009, 16:50   #7
Folder
 
Регистрация: 21.05.2009
Сообщений: 3
По умолчанию

А и еще, чтобы Excel не матюкался нужно подключить некоторые библиотеки. Для работы форм, SQL и разных шняжек
Tools - References -
У меня включено:
Visual Basik For Applications
Microsoft Excel 12.0 Object Library
OLE Automation
Microsoft Office 12.0 Object Library
Microsoft ActiveX Data Objects 2.6 Library
Microsoft Forms 2.0 Object Library
Ref Edit Control
Microsoft Windows Common Controls 6.0 (SP4)

И еще если оффис 2000-й или ниже то я юзаю вот эту ДДЛ от 2007-го
\Program Files\Microsoft Office\Office12\REFEDIT.DLL
Folder вне форума Ответить с цитированием
Старый 23.05.2009, 17:57   #8
Rom1k06
Форумчанин
 
Регистрация: 30.07.2008
Сообщений: 125
По умолчанию

А может просто открыть к книге общий доступ????
Так тоже можно работают все (редактируют и сохраняют! )
Rom1k06 вне форума Ответить с цитированием
Старый 15.11.2010, 11:13   #9
als999
Пользователь
 
Регистрация: 15.11.2010
Сообщений: 17
По умолчанию

Добрый день, уважаемые форумчане.

Задался подобным вопросом, но только для случая хранения базы не на локальном сервере, а на сервере в интернете (идеально – на бесплатном хостинге, типа holm.ru, или в хранилище данных, типа https://www.dropbox.com. Ответа пока найти не могу, и поэтому прошу вашей помощи.

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

Насколько я понимаю, возможности работать в таком формате с базой данных есть только в одном случае, если эти данные будут храниться не в excel, а в базе данных, типа MS SQL. Каким образом можно из excel экспортировать данные в БД, и как потом эту БД разместить на на сервере (что я понимаю под сервером написано в вводном абзаце)? Какую БД для этого использовать? Каким образом можно будет организовать заполнение БД непосредственно из excel? (например, занести данные в Excel именно в том формате, в котором они хранятся в таблице БД, а потом при запуске макроса выгрузить эти данные напрямую в БД).

Т.к. программистом не являюсь, то чем проще будет предложенный вариант, тем лучше.

Буду очень признателен за ваши советы. В принципе, при устраивающей меня реализации готов отблагодарить ее автора (или даже авторов) материально (платить много не готов, но на пиво перечислить через webmoney не жалко).

Последний раз редактировалось als999; 15.11.2010 в 11:18.
als999 вне форума Ответить с цитированием
Старый 15.11.2010, 13:28   #10
doober
Старожил
 
Аватар для doober
 
Регистрация: 02.05.2009
Сообщений: 3,907
По умолчанию

чисто теоретически
Качаете MySQL ,а также Apache HTTP Server.
Устанавливаете на машине с не димамичным IP адресом.
Создаете базу данных и работаете.Но без опыта и знаний пивом не обойдетесь.ее еще необходимо настроить и обслуживать
Анализ,обработка данных Недорого
doober вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как сделать чтоб скрипт обрабатывался на чужом сервере... gred PHP 7 27.02.2009 10:04
КАК отключить кэширование на proxy-сервере? aviv Свободное общение 2 20.02.2009 13:45
Единая регистрация gagagogo PHP 6 23.12.2008 13:56
Как открыть файлы на сервере? FlyByNight Работа с сетью в Delphi 7 26.06.2008 15:03
DBF Clipper база в Excel читет только 40 e_dk БД в Delphi 4 01.06.2008 15:00