Forum

Forum (https://www.ms-office.gr/forum/)
-   Access - Ερωτήσεις / Απαντήσεις (https://www.ms-office.gr/forum/access-erotiseis-apantiseis/)
-   -   Σύνδεση φόρμας με SQL βάση (https://www.ms-office.gr/forum/access-erotiseis-apantiseis/5319-sindesi-formas-me-sql-basi.html)

γιώργοςΚ 08-08-19 11:12

Σύνδεση φόρμας με SQL βάση
 
Φίλοι μου σας χαιρετώ,

Επειδή είναι κάτι που δεν έχω ασχοληθεί, θα ήθελα να ρωτήσω κατά πόσο μια φόρμα στην access μπορεί να έχεις RecordSource απευθείας απο ένα εξωτερικό αρχείο SQL. Δηλαδή,

Υπάρχει μια βάση SQL στον ίδιο υπολογιστή με την βάση Access που έχω μέσα στην οποία (SQL) υπάρχουν δεδομένα που καταχωρούται απο ιστοσελίδα στο διαδίκτυο. Εγώ θέλω αυτά τα δεδομενα να μπορώ κατά αρχή να τα παερνάω στην δική μου βάση σε κάποιους πϊνακες, που στην συνέχεια θα προβάλλονται σε φόρμες.

Επίσης, έχω ήδη βρει τρόπο να μπορώ να εξάγω δεδομένα απο την δική μου βάση (Access) προς την βάση SQL και απο εκεί με την βοήθεια της εφαρμογής Apachi γίνονται Public σε μια δική μου ιστοσελίδα στο διαδίκτυο.

Κάθε βοήθεια , άποψη σας ειναι σημαντική και σας ευχαριστω εκ προτέρων

vraxnakisg 08-08-19 14:17

Καλησπέρα Γιώργο και σε όλοι την παρέα.

Μπορείς να το κάνεις με ODBC driver και να έχεις Link τους πίνακες και ότι άλλο θέλεις αρκεί να έχεις πρόσβαση στον sql server.

Το έχω κάνει και δουλεύει μια χαρά.

γιώργοςΚ 08-08-19 19:05

Παράθεση:

Αρχική Δημοσίευση από vraxnakisg (Μήνυμα 29942)
Καλησπέρα Γιώργο και σε όλοι την παρέα.

Μπορείς να το κάνεις με ODBC driver και να έχεις Link τους πίνακες και ότι άλλο θέλεις αρκεί να έχεις πρόσβαση στον sql server.

Το έχω κάνει και δουλεύει μια χαρά.

Καλησπέρα Γιώργο και ευχαριστώ για την ενημέρωση,

Οπως γνωρίζεις δεν έχω εμπλακεί ποτέ ξανά σε κάτι τέτοιο οπότε θα με βοηθούσε εάν είχα κάποια περεταίρω ενημέρωση ως προς το τι ειναι κατά αρχάς το ODBC driver... Φαντάζομαι ότι μπορεί να είναι κάποιο Tool που λειτουργεί ως ενδιάμεσος παράγωντας για μια τέτοια δουλειά ή έχω λάθος?

Βρήκα τα drivers και τα κατέβασα παρεπιπτόντως, και τώρα τι?

Σε ευχριστω και πάλι

vraxnakisg 09-08-19 10:14

Καλημέρα Γιώργο,

Το να φτιάξω ένα οδηγό και να περιγράφω το πως γίνεται η διασύνδεση είναι χρονοβόρο για έμενα και ζήτω ειλικρινά συγνώμη.

Από την άλλη υπάρχουν έτοιμα παραδείγματα στο Internet για να δεις πως μπορείς να κάνεις την διασύνδεση Access με SQL και παραθέτω εάν τυχαίο που βρήκα.

https://www.youtube.com/watch?v=uNGqKE0jSDM

Κάτι που πρέπει να προσέξεις είναι ότι ανάλογα με την έκδοση SQL Server που έχεις θα πρέπει να έχεις και την κατάλληλη έκδοση ODBC DRIVER.

Αυτό που κάνω εγώ αποθηκεύω τον odbc driver στον φάκελο τις εκάστοτε εφαρμογής που κάνω την διασύνδεση.

Όπως σου ανέφερα και σε προηγουμένη ανάρτηση ότι δουλεύει μια χαρά, απλά να σε ενημερώσω ότι υπάρχουν και μειονεκτήματα σε αυτήν την λογική.

Πιστεύω να σε βοήθησα.

Meteora 10-08-19 18:37

Γιώργη, από την Κύπρο...
Η ιντερνική διαχείριση με Acceess έχει ιδιαιτερότητες και θέλει να αναπτύξεις μακρόχρονη σχέση μάθησης και στη συνέχεια χρήσης. Είχα μπλέξει με Access - server MySQL και είχα τη χαρά να διαβάζω, να μεταβάλλω, να προσθέτω, να αφαιρώ records σε πίνακες που ήταν εγκαταστημένοι μερικά χιλιόμετρα μακριά από τον υπολογιστή μου. Όμως! υπάρχουν εντολές access που τρέχουν και άλλες δεν τρέχουν σε αυτό το περιβάλλον. Το εγκατέλειψα και ούτε που θυμάμαι λεπτομέρειες αυτής της δουλειάς.
Τώρα προσπαθώ να δουλέψω ιντερνικά με άλλα εργαλεία.(HTML, GSS, PHP, JavaScript...) πιο μοντέρνα νομίζω και στο κάτω-κάτω ασχολούμαι με κάτι που γεμίζει τον χρόνο μου.
Αυτά φίλτατε. Χαιρετίσματα στο νησί...

με εκτίμηση/ Νίκος

pctechdr 12-08-19 21:19

Παράθεση:

Αρχική Δημοσίευση από vraxnakisg (Μήνυμα 29960)

Όπως σου ανέφερα και σε προηγουμένη ανάρτηση ότι δουλεύει μια χαρά, απλά να σε ενημερώσω ότι υπάρχουν και μειονεκτήματα σε αυτήν την λογική.

Εδώ και χρόνια που δουλεύω με SQL δεν αντιμετώπισα ποτέ προβλήματα αλλά δεν είδα ούτε μειονεκτήματα.

γιώργοςΚ 13-08-19 09:48

Καλημέρα σε όλους και ευχαριστώ για το ενδιαφέρον,

Απλά καθαρά επιμορφωτικά ήθελα να ρωτήσω εάν υπάρχει κάποιος οδηγός (Wizard) στην SQL έτσι ώστε να μπορώ να δημιουργήσω τους πίνακες μου ή και να συνδέσω τους πίνακες που έχω στην βάση access (2016)

Σας ευχαριστω

pctechdr 13-08-19 10:05

1 Συνημμένο(α)
Μπορείς να το κάνεις αυτό είτε ξανασχεδιάζοντας τους πίνακες στην βάση του SQL Server (που είναι και η καλύτερη λύση) ξεκίνα απο εδώ --->https://support.office.com/en-us/art...b-cc22fc42c979

είτε να δημιουργήσεις μία ή και περισσότερες βάσεις στο SQL Server και μετά μέσα απο την Access με δεξί κλίκ να κάνεις export τους πίνακες σου σε ODBC Database. Αυτό προυποθέτει όμως πρώτα να δημιουργήσεις στον υπολογιστή σου την σύνδεση με DSN.
Κλίκ στο εικονίδιο των Windows - Εκτέλεση - odbcad32

ή να εισάγεις στην βάση σου αυτό το module
Συνημμένο Αρχείο 10534
αφού πρώτα δημιουργήσεις ένα πίνακα στην βάση σου
με όνομα πχ UsysShared με τα εξής πεδία.

Database - Short text
Server - Short Text
ODBCTableName - Short Text
LocalTableName - Short Text
DSN - Short Text

και μετά να καλέσεις το module με "ODBCShared"

Για απορίες εδώ είμαστε. Ελπίζω λίγο να σε βοήθησα,

Χρήστος.

γιώργοςΚ 14-08-19 14:54

Παράθεση:

Αρχική Δημοσίευση από pctechdr (Μήνυμα 29978)
Μπορείς να το κάνεις αυτό είτε ξανασχεδιάζοντας τους πίνακες στην βάση του SQL Server (που είναι και η καλύτερη λύση) ξεκίνα απο εδώ --->https://support.office.com/en-us/art...b-cc22fc42c979

είτε να δημιουργήσεις μία ή και περισσότερες βάσεις στο SQL Server και μετά μέσα απο την Access με δεξί κλίκ να κάνεις export τους πίνακες σου σε ODBC Database. Αυτό προυποθέτει όμως πρώτα να δημιουργήσεις στον υπολογιστή σου την σύνδεση με DSN.
Κλίκ στο εικονίδιο των Windows - Εκτέλεση - odbcad32

ή να εισάγεις στην βάση σου αυτό το module
Συνημμένο Αρχείο 10534
αφού πρώτα δημιουργήσεις ένα πίνακα στην βάση σου
με όνομα πχ UsysShared με τα εξής πεδία.

Database - Short text
Server - Short Text
ODBCTableName - Short Text
LocalTableName - Short Text
DSN - Short Text

και μετά να καλέσεις το module με "ODBCShared"

Για απορίες εδώ είμαστε. Ελπίζω λίγο να σε βοήθησα,

Χρήστος.

Χρήστο σε ευχαριστώ για τις πολύ ενδιαφέρουσες και χρήσιμες πληροφορίες που μου έδωσες. Ειναι ευκαιρία τωρα που ειναι και οι διακοπές να το ερευνήσω το θέμα και αν χρειαστώ οτιδήποτε περεταιρω θα επανέλθω.

Καλες διακοπές

exarhos 30-07-20 23:48

SQLO SERVER
 
Παράθεση:

Αρχική Δημοσίευση από pctechdr (Μήνυμα 29978)
Μπορείς να το κάνεις αυτό είτε ξανασχεδιάζοντας τους πίνακες στην βάση του SQL Server (που είναι και η καλύτερη λύση) ξεκίνα απο εδώ --->https://support.office.com/en-us/art...b-cc22fc42c979

είτε να δημιουργήσεις μία ή και περισσότερες βάσεις στο SQL Server και μετά μέσα απο την Access με δεξί κλίκ να κάνεις export τους πίνακες σου σε ODBC Database. Αυτό προυποθέτει όμως πρώτα να δημιουργήσεις στον υπολογιστή σου την σύνδεση με DSN.
Κλίκ στο εικονίδιο των Windows - Εκτέλεση - odbcad32

ή να εισάγεις στην βάση σου αυτό το module
Συνημμένο Αρχείο 10534
αφού πρώτα δημιουργήσεις ένα πίνακα στην βάση σου
με όνομα πχ UsysShared με τα εξής πεδία.

Database - Short text
Server - Short Text
ODBCTableName - Short Text
LocalTableName - Short Text
DSN - Short Text

και μετά να καλέσεις το module με "ODBCShared"

Για απορίες εδώ είμαστε. Ελπίζω λίγο να σε βοήθησα,

Χρήστος.



Φίλε Χρήστο καλησπέρα. αν μπορείς σε παρακαλώ βοήθησε με να εισάγω τους πινάκες μου σε sql SERVER και να τις συνδέσω με φόρμες access. Προσπαθώ πολλές ήμερες τώρα (βδομάδες θα έλεγα) με videos youtube αλλά δεν βγάζω άκρη. Εχω κατεβάσει ODBC driver 17 for sql server και εχω κατεβάσει επίσης sql express 14 αλλα δεν έχω βγάλει άκρη μ τα dsn. Επισης έκανα import το module που εβαλες παραπάνω, έφτιαξα τον πινακα (εχω βάλει και id ως primary keυ) και...
δεν έχω καταλάβει πως θα το καλέσω με ποια διαδικασία και πως αυτό θα βοηθήσει. Αν εχεις χρόνο και διάθεση βοήθησε σε παρακαλώ. ευχαριστώ εκ των πρωτερων. με Εκτίμιση. Εξαρχος

pctechdr 31-07-20 00:05

Το module δουλευει ως εξης. Δημιουργείς ένα πίνακα όπως αναφέρω ποιο πάνω και το καλείς απο μια μακροεντολή που ονομάζεται Autoexec --->Εκτελεση Κώδικα--->ODBCShared.
Σου δημιουργεί μονο του τα DSN δεν χρειάζεται να κανεις τπτ αλλο.

Αν δεν βγάλεις ακρη μετα απο αυτό τοτε θα σου γραψω αναλυτικα την διαδικασια.

exarhos 31-07-20 08:35

Παράθεση:

Αρχική Δημοσίευση από pctechdr (Μήνυμα 31337)
Το module δουλευει ως εξης. Δημιουργείς ένα πίνακα όπως αναφέρω ποιο πάνω και το καλείς απο μια μακροεντολή που ονομάζεται Autoexec --->Εκτελεση Κώδικα--->ODBCShared.
Σου δημιουργεί μονο του τα DSN δεν χρειάζεται να κανεις τπτ αλλο.

Αν δεν βγάλεις άκρη μετα απο αυτό τοτε θα σου γραψω αναλυτικα την διαδικασια.

φίλε μου καλήμερα. προσπάθησα με όλους τους πιθανούς τρόπους και συνδυασμούς άλλα δεν κατάφερα. όταν ανοίγει η εφαρμογή μου βγάζει συνημμένα οτι δε μπορεί να εκτελεστεί η μακροεντολή και πατάω stopmacro
μηπως δεν έχω κατεβσει τα καταλληλα εργαλεια? (odbc driver for sql server 17 kai sql exxpress 14) οπως και να χει σευχαριστω πολυ για το χρόνο σου και τη διαθεση σου να με βοηθήσεις.

pctechdr 31-07-20 09:36

Λοιπόν αναλυτικά η διαδικασία.

Πρωτο βήμα: είναι να δημιουργήσεις έναν πίνακα με τα εξής πεδία.

Ονομα Πεδίου: DataBase
Τύπος Πεδίου: Συντομο Κείμενο (Short Text)
Μέγεθος Πεδίου: 50 πχ

Ονομα Πεδίου: Server
Τύπος Πεδίου: Συντομο Κείμενο (Short Text)
Μέγεθος Πεδίου: 50 πχ

Ονομα Πεδίου: ODBCTableName
Τύπος Πεδίου: Συντομο Κείμενο (Short Text)
Μέγεθος Πεδίου: 50 πχ

Ονομα Πεδίου: LocalTableName (Πρωτεύον Κλείδί)
Τύπος Πεδίου: Συντομο Κείμενο (Short Text)
Μέγεθος Πεδίου: 50 πχ

Ονομα Πεδίου: DSN
Τύπος Πεδίου: Συντομο Κείμενο (Short Text)
Μέγεθος Πεδίου: 50 πχ

Αφού Δημιουργήσεις τον πίνακα τον αποθηκεύεις και του δίνεις ένα όνομα πχ UsysShared.

Δεύτερο βήμα:

Δημιουργείς ένα module με όνομα πχ RelinkSQL και κάνεις επικόλληση τον εξής κώδικα.

Public Function DoesTableExist(strTableName As String) As Boolean '(Author:Microsoft)
On Error Resume Next
Dim db As DAO.Database: Set db = CurrentDb()
Dim Tbl As DAO.TableDef: Set Tbl = db.TableDefs(strTableName)
If Err.Number = 3265 Then ' Item not found.
DoesTableExist = False
Exit Function
End If
DoesTableExist = True
End Function

Public Function RelinkShared() As Boolean '(Author:Microsoft/Changes:Christos Karakizos)
Dim strTableName As String
Dim strConn As String
Dim db As DAO.Database: Set db = CurrentDb()
Dim rs As DAO.Recordset
Dim Tbl As DAO.TableDef
' ---------------------------------------------
' Register ODBC database(s)
' ---------------------------------------------
If DoesTableExist("UsysShared") = True Then
Set rs = db.OpenRecordset("UsysShared", dbOpenSnapshot)
With rs
While Not .EOF
If ReadODBCDriver() = True Then
'ODBC Driver 17 for SQL Server
DBEngine.RegisterDatabase rs("DSN"), "ODBC Driver 17 for SQL Server", True, "Description=" & rs("DataBase") & Chr(13) & "Server=" & rs("Server") & Chr(13) & "Database=" & rs("DataBase")
Else
'SQL Server Driver
DBEngine.RegisterDatabase rs("DSN"), "SQL Server", True, "Description=" & rs("DataBase") & Chr(13) & "Server=" & rs("Server") & Chr(13) & "Database=" & rs("DataBase")
End If
' ---------------------------------------------
' Link table
' ---------------------------------------------
strTableName = rs("LocalTableName")
strConn = "ODBC;"
strConn = strConn & "DSN=" & rs("DSN") & ";"
strConn = strConn & "APP=Microsoft Access;"
strConn = strConn & "DATABASE=" & rs("DataBase") & ";"
strConn = strConn & "Trusted_Connection=Yes" & ";"
strConn = strConn & "TABLE=" & rs("ODBCTableName")
If (DoesTableExist(strTableName) = False) Then
Set Tbl = db.CreateTableDef(strTableName, dbAttachSavePWD, rs("ODBCTableName"), strConn)
db.TableDefs.Append Tbl
Else
Set Tbl = db.TableDefs(strTableName)
Tbl.Connect = strConn
Tbl.RefreshLink
End If
rs.MoveNext
Wend
End With
End If
rs.Close
Set rs = Nothing
RelinkShared = True
End Function

Public Function ReadODBCDriver() As Boolean
On Error GoTo Err:
If CreateObject("WScript.Shell").RegRead("HKEY_LOCAL_ MACHINE\SOFTWARE\ODBC\ODBCINST.INI\ODBC Drivers\ODBC Driver 17 for SQL Server") = "Installed" Then
ReadODBCDriver = True
Else
ReadODBCDriver = False
End If
Err:
End Function

Σου έχω βάλει μέσα στον κώδικα να ελέγχει αν υπάρχει εγκατεστημενος ο ODBC 17 Driver και αν ναι να δημιουργεί τα DSN με αυτόν τον Driver αλλιώς δημιουργεί τα DSN με τον SQL Driver.

Τρίτο Βήμα :

Στον Πίνακα που δημιούργησες καταχωρείς τα στοιχεία απο τους πίνακες που θες να συνδέσεις απο τον SQL Server.

Πχ:
Πεδιο Database --->Ονομα DSN (Shared)
Πεδίο Server ---> Εδω καλύτερα να δώσεις την IP Address του SQL Server και όχι το όνομα.
Πεδίο ODBCTableName --->Εδώ δίνεις το όνομα του πίνακα που θες να συνδέσεις απο τον SQL Server
Πεδίο LocalTableName --->Εδώ δίνεις το όνομα του συνδεμένου πίνακα πώς θες να ονομάζεται μέσα στην Access
Πεδιο DSN--->Εδώ δώσε το όνομα που θες στο DSN. Εγώ βάζω το ίδιο με το πεδίο Database

Τέταρτο βήμα:

Δημιουργείς μια μακροεντολή που την ονομαζεις Autoexec--->Εκτελεση κώδικα--->RelinkShared() και είσαι έτοιμος.

Ελπίζω αυτο να σε βοηθήσει καλύτερα. Αν όχι πάλι εδώ είμαστε. :byebye:

gianniskar 31-07-20 10:02

1 Συνημμένο(α)
Καλημερα .Ειχα κανει και εγω την διαδικασια που προτεινει ο Χρηστος.

Θα στα πω οπως θυμαμαι τα βηματα

1)Ανοιγεις την εκτελεση των windows με τα πληκτρα windows key + r .Εκει μεσα γραφεις odbcad32 και πατας οκ.Λογικα θα σου ανοξει ενα παραθυρο οπου δεξια εχει το πληκτρο "add".Εκει διαλεγεις ποιον driver θα βαλεις.Εγω εχω βαλει τον "sql Server".Πατας "οκ".Μετα βαζεις ενα ονομα οποιο θες και μια περιγραφη οποια θες.Μετα ποιο κατω στο ονομα του σερβερ βαζεις ακριβως την ονομασια θα την βρεις αν πας στο sql management studio και αφου κανεις connect στην βαση πανω πανω λεει πχ server/SQLEXPRESS.Αν ειναι σωστο το ονομα που θα βαλεις θα σε παει στο επομενο βημα.Μετα πατας ξανα επομενο οπου εκει πανω πανω λεει να επιλεξεις "change the default database to"και διαλεγεις την δικια σου βαση.Μετα επομενο και τελος.Το παραθυρο που θα σου ανοιξει πατας και "TEST DATA SOURCE".Αν εχει γινει σωστη συνδεση θα σου βγαλει "TEST COMPLETED SUCCESSFULLY

2)Μετα πας στην access και φτιαχεις εναν πινακα με ονομα "UsysShared" με τα πεδια

Database - Short text
Server - Short Text
ODBCTableName - Short Text
LocalTableName - Short Text
DSN - Short Text

3)Μετα θα εισαγεις το module που σου εδωσε ο χρηστος .

4)Μετα εναν εναν τους πινακες δεξι κλικ σε καθε πινακα-->εξαγωγη-->βαση δεδομενων odbc.Δινεις το ονομα του πινακα ξανα η το αφηνεις ως εχει.Στο παραθυρο που θα σου ανοιξει θα διαλεξεις τωρα το DSN που εφτιαξες πριν (1).Πατας οκ και μετα κλεισιμο.Αυτο το κανεις για ολους τους πινακες.

5)Τωρα παιρνεις copy-paste το ονομα καθε πινακα εναν εναν παλι και το κανεις επικολληση μεσα στον πινακα στα πεδια "ODBCTableName" και LocalTableName".Στο πεδιο "server"βαζεις το ονομα του server sql και στο DSN το ονομα που εχεις βαλεις στην αρχη (1).Μπορεις επισης για να μην γραφεις συνεχεια το ονομα του server ,το ονομα του dsn και το ονομα της database ,να βαλεις προεπιλεγμενη τιμη γιαυτα.Αυτο γινεται αν πας στο πεδιο πχ"server" και μετα κατω εκει που λεει "Γενικες"-->Προεπιλεγμενη τιμη βαζει το ονομα του server πχ "sqlserver"

6)Αφου κανεις αυτα μετα θα κανεις παλι εναν εναν τους πινακες μετανομασια πχ εχεις εναν πινακα "table"κανε το μετανομασια σε "tablebak".

7)Αφου κανεις και αυτα ,φτιαξε μια μακροεντολη "Autoexec" και .Επιλγεις -->εκτελεση κωδικα-->και στο ονομα συναρτησης βαζεις την εντολη ODBCShared().Αποθηκευεις και μετα τρεχεις την μακροεντολη.Αν ειναι ολα οκ οι πινακες σου θα φαινονται ετσι.

exarhos 31-07-20 19:24

Φίλοι μου σας ευχαριστώ πάρα πολύ. (το μονο που δεν κάνατε είναι να ρθείτε το φτιάξετε μόνοι σας)
για μένα αυτό ήταν βουνό. δεν θα το έκανα ποτέ χωρίς την βοήθεια σας όπως και πολλά αλλα.
το προβλημα ειναι βεβαια οτι αργεί παααααααααααρα πολυ. δλδ κανει περιπου ενα λεπτο μεχρι να ανοιξει την κάθε φόρμα. Επίσης με την είσοδο μου βγάζει τα εξης μηνύματα "operation must use an updateable query" και "the recordset is not updateable" και αναφέρεται σε ερωτήματα ενημέρωσης που ειχω με τη φόρτωση
και πάλι σας Ευχαριστώ πάρα πολυ.
Με εκτίμηση

Tasos 01-08-20 16:43

Καλησπέρα σε όλους!
Για σύνδεση πινάκων από βάση MSSQL μπορείτε να ρίξετε μια ματιά εδώ:
https://www.ms-office.gr/forum/acces...html#post31345

Καλή συνέχεια!

Με εκτίμηση

Τάσος

exarhos 01-08-20 17:21

φίλε Τάσο καλησπέρα και σ ευχαριστώ παρά\α πολύ για τη βοήθεια σου. Όπως ίσως θα κατάλαβες, εγώ εκτός απο αρχάριος ει μαι και περιορισμένης αντίληψης, Οπότε αν θες σε παρακαλώ γινε λιγο πιο συγκεκριμενος, δλδ εξήγησε μου τι ακριβώς πρέπει να κάνω. Να διευκρινίσω εδω οτι με τον τρόπο που πρότεινε ο Χρήστος και Γίαννης σύνδεσα επιτυχώς τους πινακες μου σε SQL SERVER και μετά τους εκανα λικ στις φόρμες αλλα η εφαρμογη κολάει δεν γίνεται να δουλεψω ετσι συν το οτι δεν λειτουργούν τα ερωτηματα ενημερωσης.
Ισως όμως με το δικο σου τροποι η σύνδεση να γίνει πιο αποτελεσματικα, γι αυτο σε παρακαλώ βοηιθησε με να το δοκιμασω. πες ακτιβως τι πρεπει να κανω και πως να το κανω. σ ευχαριστώ πολυ εκτων πρωτερων.

vraxnakisg 01-08-20 22:24

Γεια σου Έξαρχε,

Στο παράδειγμα του Τάσου αυτό που πρέπει να κάνεις είναι να συμπληρώσεις σωστά τα πεδία με τα κατάλληλα στοιχεία. Δηλαδή:

Στο πεδίο «Διεύθυνση && Θύρα επικ. Server» να βάλεις την Διεύθυνση και Θύρα επικοινωνίας του SQL Server σου (πχ: mssql.name.gr,1555).

Στο πεδίο «Όνομα χρήστη» το username που έχεις για να συνδεθείς στον SQL Server σου (πχ: sa).

Στο πεδίο «Κωδικός» το password που έχεις για να συνδεθείς στον SQL Server σου (πχ: 12345).

Και στο πεδίο «Όνομα βάσης στον Server» το όνομα της βάσης σου από τον SQL Server σου και πατάς το κουμπί αποθήκευση για να αποθηκεύσεις τα παραπάνω στοιχεία.

Τώρα στο «Απομακρ. Πίνακας» θα πρέπει να γράψεις τα ονόματα των πινάκων της βάσης του SQL Server σου που θέλεις να κάνεις link στο αρχείο της access και στο «Τοπικός πίνακας» θα πρέπει να γράψεις τα ονόματα των πινάκων που θα γίνουν link στην Access και θα πατήσεις το κουμπί «Σύνδεση πινάκων».

Το βασικό είναι τα ονόματα των πινάκων να είναι ίδια γιατί μετά θα έχεις πρόβλημα στις φόρμες, ερωτήματα στην access (FrontEnd).

Την παραπάνω διαδικασία θα την κάνεις στο αρχείο της access που έχεις μόνο φόρμες ερωτήματα κτλ (FrontEnd)

Ότι άλλο θέλεις εδώ είμαστε….

Ευχαριστώ.

exarhos 02-08-20 12:20

1 Συνημμένο(α)
Φίλε μου σ'ευχαριστ'ω πολύ.το εκανα. οι φορμες ανοιγουν κανονικα. αλλα το προβλημα μου ειναιοτι δεν λειτουργουν τα ερβτηματα ενημερωσης που εχω (true-false). πηγα στο design του πινακα με το SSMS και ειδα οτι data type των παιδιων που ενημερωνω ειναι "bit" στην access ηταν true - false. προσπαθησα να το αλλαξω σε char αλλα μου βγαζει το μυνημα της φωτο που επισυνάττω.
και πάλι ευχαριστω πολύ όλους σας

vraxnakisg 02-08-20 13:07

1 Συνημμένο(α)
Καλησπέρα Έξαρχε,

Άνοιξε το SSMS και πήγαινε από το μενού ToolsOptionsDesigners και ξετςέκαρε την επιλογή «Prevent saving changes that require table re-creation» όπως φαίνεται και στην επισυναπτόμενη εικόνα.

Έτσι θα μπορέσεις να ανοίξεις τους πίνακες της βάσης sql σε προβολή σχεδίασης και να κάνεις αλλαγές.

Ευχαριστώ.

exarhos 02-08-20 13:42

Φίλε Τάσο σ ευχαριστώ παρα πολυ που Κυριακάτικα ασχολείσαι μ εμενα :d020:
προκυπτουν 'ομως κι άλλα προβληματα
ο sql server μετέτρεψε τον τυπο δεδομενων true-false της access σε τύπο δεδομενων "bit"
εγω το αλλαξα σε char (10) γιατι τα ερωτήματα δεν έτρεχαν
σε κάποια ερωτηματα ενημερωσης της εφαρμογης δοκιμασα να βαλω 0 (μηδεν) αντι γαι false, δοκιμασα " -1" δοκιμασα "false" αλλα οταν τρεχω το ερωτημα μου βγαζει μυνμημα "operation must use an updateable quere" ο πινακας που σενδεσα στον sql εχει μετατρεψει τις τιμες "0" και "1" σε "0" και "255" αντίστοιχα.

δεν ξερω τι αλλο να κάνω.
Ευχαρισώ πολύ με εκτίμηση

vraxnakisg 02-08-20 14:09

Καλησπέρα Έξαρχε,

Σωστά ο sql server μετέτρεψε τον τύπο δεδομένων true - false της Access σε τύπο δεδομένων "bit".

Θα σου πρότεινα να ξαναγυρίσεις τον τύπο δεδομένων στο πεδίο σε bit ή τουλάχιστον σε integer και να ξανασχεδιάσεις από την αρχή (νέο) ένα ερώτημα που έχεις πρόβλημα.

Δες ακόμα τα δικαιώματα του αρχείου της Access. Κάνε δεξί κλικ πάνω του και επιλέξτε ιδιότητες Επιλέξτε την καρτέλα Ασφάλεια μετά Επεξεργασία και στο παράθυρο διαλόγου «Δικαιώματα» τσέκαρε το Αποδοχή σε όλα.

Ευχαριστώ.

exarhos 02-08-20 14:21

Παράθεση:

Αρχική Δημοσίευση από vraxnakisg (Μήνυμα 31355)
Καλησπέρα Έξαρχε,

Σωστά ο sql server μετέτρεψε τον τύπο δεδομένων true - false της Access σε τύπο δεδομένων "bit".

Θα σου πρότεινα να ξαναγυρίσεις τον τύπο δεδομένων στο πεδίο σε bit ή τουλάχιστον σε integer και να ξανασχεδιάσεις από την αρχή (νέο) ένα ερώτημα που έχεις πρόβλημα.

Δες ακόμα τα δικαιώματα του αρχείου της Access. Κάνε δεξί κλικ πάνω του και επιλέξτε ιδιότητες Επιλέξτε την καρτέλα Ασφάλεια μετά Επεξεργασία και στο παράθυρο διαλόγου «Δικαιώματα» τσέκαρε το Αποδοχή σε όλα.

Ευχαριστώ.

Τάσο τα δικαιώματα ηταν τσεκαρισμένα αποδοχη σε όλα. εννοεις να ξαναφτιάξω το ίδιο ερωτημα ενημερωσης στην access με true- false ή yes- No αλλα να αλλαξω απο se integer ?
το εκανα. παλι δεν παιζει απο access
ετρεξα το ιδιο ερωτημα (UPDATE aggyrov_tbl SET aggyrov_tbl.anchorage = 1;) στον sql server και παιζει κανονικα
Ευχαριστώ πολύ

vraxnakisg 02-08-20 14:52

Τι σφάλμα σου βγάζει η Access όταν τρέχεις το ίδιο ερώτημα?

exarhos 02-08-20 15:01

"operation must use an updateable quere"

vraxnakisg 02-08-20 15:08

Το συγκεκριμένο σφάλμα έχει να κάνει με τα δικαιώματα του χρήστη.

Δες ακόμα τα δικαιώματα του φακέλου που είναι το αρχείο της Access και τσέκαρε και τον χρήστη να δεις τι δικαιώματα έχει.

exarhos 02-08-20 15:26

1 Συνημμένο(α)
σου επισυναπτω screenshot

vraxnakisg 02-08-20 15:36

Σου έχω στείλει προσωπικό μήνυμα

exarhos 02-08-20 17:22

Παράθεση:

Αρχική Δημοσίευση από vraxnakisg (Μήνυμα 31361)
Σου έχω στείλει προσωπικό μήνυμα

δεν έχω λάβει κάτι. προσπαθησα να σου στειλω πμ αλλα εχεις εππιλεξει να μην λαμβανεις πμ. ετσι γράφει

απ ότι διαπιστώνω τόποτα δεν είναι updateable. δεν μπορω να εισαγω στοιχει απ τις φόρμες μου. ενω ανοιγει η φόρμα κανονικα μμόλις παταω το κουμπι πχ ) calltime γραφει "record is not updateable" ατον πιανακα το συγκεκριμένο column είναι time (7)

exarhos 03-08-20 08:33

Έβγαλα άκρη. :victory: δεν ξέρω τι ακριβώς έφταιγε αλλα μολις το άνοιξα με μια παλιοτερη εκδιοση της εφαρμογης δουλέυει κανονικα.
Ευχαριστω πάρα πολύ όλους σας για το χρόνο σας και τη διάθεση να με βοηθήσετε. Εύχομαι να φανώ κάποια στιγμή χρήσιμος και να σας ανταποδώσω με οποιοδήποτε τρόπο.
με Εκτιμιση


Η ώρα είναι 00:52.

Ms-Office.gr - ©2000 - 2026, Jelsoft Enterprises Ltd.


Search Engine Optimization by vBSEO 3.3.2