-Ïîèñê ïî äíåâíèêó

Ïîèñê ñîîáùåíèé â rss_sql_ru_access_programming

 -Ïîäïèñêà ïî e-mail

 

 -Ïîñòîÿííûå ÷èòàòåëè

 -Ñòàòèñòèêà

Ñòàòèñòèêà LiveInternet.ru: ïîêàçàíî êîëè÷åñòâî õèòîâ è ïîñåòèòåëåé
Ñîçäàí: 16.03.2006
Çàïèñåé:
Êîììåíòàðèåâ:
Íàïèñàíî: 4


Ñâÿçü òàáëèö MSSQL ñ áàçîé Access áåç èñïîëüçîâàíèÿ "äèñïåò÷åðà ñâÿçàííûõ òàáëèö"

Ïîíåäåëüíèê, 21 ßíâàðÿ 2019 ã. 12:25 + â öèòàòíèê
Äîáðîãî äíÿ.
Íà÷íó èç äàëåêà. Åñòü ïðîåêò accecc, êîòîðîé ÿ ïåðåäåëûâàþ èç *.adp ïîä ñîâðåìåííûé *.accdb. Ôîðìû, êîä, âñå óæå ïåðåíåñ è àäàïòèðîâàë, òàáëèöû ñ sql ïðèâÿçàë ÷åðåç äèñïåò÷åð ñâÿçàííûõ òàáëèö. Îäíàêî, åñòü òàêàÿ ïðàêòèêà, äîðàáîòêè ïðîãðàììû îòëàæèâàòü íà òåñòîâîé áàçå sql, è äëÿ ñìåíû ñåðâåðà ïðèõîäèòñÿ ïåðåëèíêîâûâàòü îêîëî ñîòíè òàáëèö ÷åðåç äèñïåò÷åð ñâÿçàííûõ òàáëèö. Èç ýòîãî ñëåäóåò òðè ïðîáëåìû:
1. Íàäî ñäåëàòü ìèíèìóì 100 êëèêîâ ìûøêîé â ïðîöåññå ïåðåëèíêîâêè (íå ïðîáëåìà, íî ïàðèò)
2. Âòîðàÿ, âûòåêàþùàÿ èç ïåðâîé, ñðåäè òàáëèö âñòðå÷àþòñÿ ïðåäñòàâëåíèÿ, êîòîðûì òðåáóåòñÿ ïðèíóäèòåëüíî óêàçàòü ïåðâè÷íûé êëþ÷. È åñòü ìîìåíò êîãäà ìîæíî óêàçàòü "íå âåðíûé" êëþ÷, ïðîñòî ïî çàïàðêå (ÿ äàæå ïðåäñòàâëåíèÿ íå ïðåäñòàâëþ íà ÷òî ýòî ìîæåò ïîâëèÿòü)
3.  ïðîöåññå ïåðåëèíêîâêè access ñáðàñûâàåò çíà÷åíèÿ ïåðâè÷íûõ êëþ÷åé äëÿ ïðåäñòàâëåíèé. Òóò ÿ ïîÿñíþ äëÿ ÷åãî ïåðâè÷íûé. Ëüâèíàÿ äîëÿ ôîðì â êà÷åñòâå èñòî÷íèêà çàïèñåé èñïîëüçóþò ýòè ïðåäñòàâëåíèÿ è ñàì access âûäàåò Run-time error '3326': Îáúåêò Recordset íå ÿâëÿåòñÿ îáíîâëÿåìûì, ïîïðîñòó íå ïîëó÷àåòñÿ ïðàâèòü çíà÷åíèÿ. À âîò åñëè íàçíà÷èòü ïåðâè÷íûé êëþ÷, òî ïðàâêè ïðîõîäÿò.

Ïåðåëèíêîâàòü ìîæíî â ðó÷íîì ðåæèìå è êîäîì vba ïîïðàâèâ òàáëèöó MSysObjects, ïî ïðè ýòîì ïåðâè÷íûå êëþ÷è "ñëåòàþò".
Ïåðåëèíêîâûâàþ òàêèì îáðàçîì
+

Public Sub RefreshTablesLinks2
Dim tdf, cDB, strODBC
Dim i As Integer
Set cDB = CurrentDb
Set tdf = cDB.TableDefs
strODBC = "DSN=DSNname;Description=DSNname;Trusted_Connection=Yes;APP=Microsoft Office;DATABASE=testdb;"

On Error GoTo Err_handler
For i = 0 To tdf.Count - 1
If tdf(i).Connect <> "" Then
tdf(i).Connect = strODBC
tdf(i).RefreshLink
End If
Next

Err_handler:
'MsgBox Err.Description
Resume Next
End Sub

Ñîáñòâåííî âîïðîñ, åñòü ëè ñïîñîá êîìàíäîâàòü ïðîöåññîì ëèíêîâêè ÷åðåç vba, êàê äèñïåò÷åð ñâÿçàííûõ òàáëèö, ÷òî áû ìîæíî áûëî ãèáêî óïðàâëÿòü ïðîöåññîì è âîîáùå äîñòèãíóòü ïîëíîé àâòîìàòèçàöèè?

https://www.sql.ru/forum/1307980/svyaz-tablic-mssql-s-bazoy-access-bez-ispolzovaniya-dispetchera-svyazannyh-tablic


 

Äîáàâèòü êîììåíòàðèé:
Òåêñò êîììåíòàðèÿ: ñìàéëèêè

Ïðîâåðêà îðôîãðàôèè: (íàéòè îøèáêè)

Ïðèêðåïèòü êàðòèíêó:

 Ïåðåâîäèòü URL â ññûëêó
 Ïîäïèñàòüñÿ íà êîììåíòàðèè
 Ïîäïèñàòü êàðòèíêó