powered by simpleCommunicator - 2.0.58     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Excel <--> MSSQL (или MySQL) ?
16 сообщений из 16, страница 1 из 1
Excel <--> MSSQL (или MySQL) ?
    #38354851
Друзья, прошу прощения за возможно глупый вопрос: а возможно ли как то Excel подключить напрямую к БД?
ну тоесть чтоб при открытии определённого Excel документа, шёл коннект к БД, ну и напрямую заполнялись поля в БД из Excel (конечено же при условии соответствии формата введённой инфы и полей в базе)

Модератор: Тема перенесена из форума "Microsoft SQL Server".
...
Рейтинг: 0 / 0
Excel <--> MSSQL (или MySQL) ?
    #38354911
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да, возможно.
Создай соотв. подключение (Панель управления - источники данных), после чего подключись к созданному источнику (Импорт внешних данных - Создать запрос).
...
Рейтинг: 0 / 0
Excel <--> MSSQL (или MySQL) ?
    #38355359
и что, прям можно будет делать онлайн инсерт\апдейт БД из документа?
...
Рейтинг: 0 / 0
Excel <--> MSSQL (или MySQL) ?
    #38355406
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Таке ты хочешь не просто подключиться к серверу, а ещё и использовать приложение (Ворд, Эксель) как интерфейс к БД? Ну тогда ответ немного иной - да, возможно, но не так просто, как тебе хочется. Придётся писАть полноценную программу на VBA... имхо.

А нахрена?
...
Рейтинг: 0 / 0
Excel <--> MSSQL (или MySQL) ?
    #38356142
J_Mnemonic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
да хрен знает, нахрена :) Заказщик попросил.
хотя вот токо сёдня узнал новую инфу: достаточно чтоб апдейт\инсерт в БД происходил раз в день.
на счёт VBA грустно... :) так как совсем не знаю его... но если укажете ссылочки на примеры, или что то подобной, с радостью освою.
...
Рейтинг: 0 / 0
Excel <--> MSSQL (или MySQL) ?
    #38356524
MX-9
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
J_Mnemonicда хрен знает, нахрена :) Заказщик попросил.
хотя вот токо сёдня узнал новую инфу: достаточно чтоб апдейт\инсерт в БД происходил раз в день.
на счёт VBA грустно... :) так как совсем не знаю его... но если укажете ссылочки на примеры, или что то подобной, с радостью освою.

.. ты хочешь не просто подключиться к серверу, а ещё и использовать Эксель как интерфейс к БД?

Работаем с такой самопальной системой достаточно долго.
Интерактивная связь клиентов с единой общей базой данных - и через интернет тоже.
Клиенты сидят на EXCEL.

Скорость - обьемы - журналирование - все ok.

Можем поучаствовать в вашем проекте.

================
...
Рейтинг: 0 / 0
Excel <--> MSSQL (или MySQL) ?
    #38356535
J_Mnemonic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
MX-9,
Вы предлагаете передать вам свою работу? )
...
Рейтинг: 0 / 0
Excel <--> MSSQL (или MySQL) ?
    #38356563
Vladimir Baskakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
кусок кода работает с данными на листах экселя
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
Set shSrc = Application.ActiveWorkbook.Sheets("ААААА")
  Set shDst = Application.ActiveWorkbook.Sheets("ИИИИИ")
  
  
   i = 5
  statCnt = 0
  While shSrc.Cells(1, i).Value <> 0
    i = i + 1
    statCnt = statCnt + 1
  Wend
  
      


кусочки кода тянут из оракла в акс через адо, заливают назад через хранимку.....
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
Public Function MakeConn(bd As String, uid As String, pwd As String)
  
  Dim conn As New ADODB.Connection
  conn.Open connstr(bd, uid, pwd), uid, pwd
  Set MakeConn = conn
  
End Function


Public Sub Fill_Table_OraQuery(p_table As String, p_conn As ADODB.Connection, p_sql As String)
  ' дольем таблицу аксеса из ораклового запроса, без очистки
  
  ' выполним запрос
  Dim rs As ADODB.Recordset
  Set rs = p_conn.Execute(p_sql)

  Dim mydb As Database
  Set mydb = Application.CurrentDb
  ' откроем финальную таблицу для записи
   Dim dst_rs As DAO.Recordset
   Set dst_rs = mydb.OpenRecordset(p_table, dbOpenDynaset)


   Dim fnames As Variant
   Dim fld_count As Integer
   fld_count = rs.Fields.Count
      
   ' Создаем список полей
   Dim srcFlds(1 To 100) As ADODB.Field
   Dim dstFlds(1 To 100) As DAO.Field
   Dim i As Integer
   
   For i = 1 To fld_count
     Set srcFlds(i) = rs.Fields(i - 1)
     Set dstFlds(i) = dst_rs.Fields(rs.Fields(i - 1).Name)
   Next

   ' в цикле по набору вставляем записи
   While Not rs.EOF
    dst_rs.AddNew
    For i = 1 To fld_count
      dstFlds(i).Value = srcFlds(i).Value
    Next
    dst_rs.Update
    rs.MoveNext
   Wend

   ' закроем все открытое
   dst_rs.Close
   Set dst_rs = Nothing
   rs.Close
   Set rs = Nothing
   Set mydb = Nothing
End Sub

Private Sub btn_ora_process_Click()

  Dim l_waf As Form
  Set l_waf = Me.work_area_fld.Form
  
  Dim rs As DAO.Recordset
  Dim i As Integer
  Set rs = filtered_recordset()
  
  If Not (rs.BOF And rs.EOF) Then
     rs.MoveFirst
  End If
  
  Dim conn As New ADODB.Connection
  Set conn = utils.MakeConn("КККК", "ККККК", "КККККК")
    
  Dim l_cnt As Integer
  l_cnt = 0
     
  'Пройдем по записям, зальем в оракл помеченное для исправления
  While Not rs.EOF
    If rs!check_flg = 2 Then
       Dim act As String
       Dim l_b As String
       If rs!b Then
         l_b = 1
       Else
         l_b = 0
       End If
       
       l_cnt = l_cnt + 1
       
       act = "begin xxyyzz.update_eeee(p_id =>'" & rs!id _
       & "', p_c=>  '" & rs!my_c _
       & "', p_a => '" & rs!my_a & "' , p_b> '" & l_b & "'); end;"
       conn.Execute act
       
       rs.Edit
          rs.Fields("check_flg").Value = 4
       rs.Update
    End If
    
    rs.MoveNext
  Wend
  
  conn.Close
  
  Set conn = Nothing
  Set rs = Nothing
  
  Me.work_area_fld.Form.Refresh
  MsgBox ("Исправлено " & l_cnt)
End Sub
    
...
Рейтинг: 0 / 0
Excel <--> MSSQL (или MySQL) ?
    #38356617
J_Mnemonic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Vladimir Baskakov,

Спасибо большое! Правда код для меня почти незнаком но буду пытаться разбираться. а то что у меня база на MYSQL сильно будет влиять на код?
...
Рейтинг: 0 / 0
Excel <--> MSSQL (или MySQL) ?
    #38356639
J_Mnemonic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
я правильно понял? у вас данные из оракла тянуться в аксес а из аксеса уже в Excel?
а сохраняются в бд, путём вызова хранимки "update_eeee"

и всё это в макросах EXCEL документа написано?
...
Рейтинг: 0 / 0
Excel <--> MSSQL (или MySQL) ?
    #38356821
f
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всегда умиляет наивность некоторых людей, которые считают, что можно написать сложную программу, абсолютно не разбираясь в программировании.

Ничего личного.
...
Рейтинг: 0 / 0
Excel <--> MSSQL (или MySQL) ?
    #38356853
J_Mnemonic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
F,

Вы правы. это действительно смешно ) но я честно говоря и не надеюсь что будет легко. Просто пытаюсь узнать максимум инфы, которая поможет для старта.
...
Рейтинг: 0 / 0
Excel <--> MSSQL (или MySQL) ?
    #38357263
f
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Для старта изучают основы программирования, а не пишут профессиональные программы.
...
Рейтинг: 0 / 0
Excel <--> MSSQL (или MySQL) ?
    #38357292
J_Mnemonic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
F,
ну. плавать иногда учатся тоже когда падают в речку. думаю было бы глупо отказаться от заработка, не попробовав. тем более что в программировании я не новичёк. просто с VB и его синтаксисом не знаком.
...
Рейтинг: 0 / 0
Excel <--> MSSQL (или MySQL) ?
    #38357307
f
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Так и начинайте с более подходящих для задачи средств.
...
Рейтинг: 0 / 0
Excel <--> MSSQL (или MySQL) ?
    #38365965
Vladimir Baskakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
J_Mnemonicя правильно понял? у вас данные из оракла тянуться в аксес а из аксеса уже в Excel?
а сохраняются в бд, путём вызова хранимки "update_eeee"

и всё это в макросах EXCEL документа написано?
)))))) у меня тянется отовсюду во все ))))))
Коннект к базе и проход по запросу не зависит - эксель или акс, если вытягивать в них. Адо - оно и в африке Адо...., и оно не слишком сильно зависит от того - к какой базе цепляться....
...
Рейтинг: 0 / 0
16 сообщений из 16, страница 1 из 1
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Excel <--> MSSQL (или MySQL) ?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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