15. september 2005 - 13:43Der er
9 kommentarer og 1 løsning
Gemme i Access tabell men hente data i SQL fra Access
Hej allesammen,
Jeg har en kobbling mod en SQL database fra Access. Mit spm er om det er muligt at feks oprette ett felt i en form (kundenr) og når man så taster kundenr ind så henter den adresseoplysningerne fra SQL databasen og derefter gemmer de data som passer till kunden i en tabell i Access?
Det er for at kunne lave et udvalg af kunder hvor der skal printes labels. Som det er idag så skriver vi det hele manuelt ind i Accessdatabasen og det tar lang tid.
Selve kobblingen till SQL databasen fra Access er ellerede oppe, men jeg ved bare ikke om det er muligt i formen idet det nok skal være en slags opslag/søge funktion.
If you have an ODBC (DSN) connection to SQL Server then you will have a linked table in your Access database.
You can then add a combo box to a form which shows your Kundenr.
Now make an append query which selects records from your SQL table and inserts them into your Access table. In the criteria field for kundenr you now make a reference to the combo box on the form so that the append query only selects the record for the kundenr you have selected in the combo.
Som terry siger, så er du nødt til at knytte din Kundetabel fra SQL serveren til din Access database via en ODBC kobling.
Når du har gjort det, kan resten gøres på mange måder. Måske vil andre synes, at min metode er lidt omstændelig. Til det kan jeg kun sige: Tja, men det er nu den måde jeg ville gøre det på. Især fordi du siger, du gerne vil kunne indtaste kundenumrene. Så her er min opskrift...
Jeg forudsætter at du har to tabeller (Kunder, som er den tabel som ligger fysisk på SQL server, og Labels som ligger fysisk i Access).
1) Opret en form med Guide funktionen og vælg Labels tabellen. 2) Rediger den oprettede form. 3) I formens VedAktivering tilføjes: Private Sub Form_Activate() txtKundenr.SetFocus End Sub 4) Formularens egenskab Tillad tilføjelser sættes til Nej 5) I header sektionen tilføjes et ubundet indtastningsfelt som kaldes txtKundenr. 6) Ligeledes i header sektionen placeres en kommandoknap som kaldes cmdTilføj 7) Knappen egenskab Standardknap sættes til Ja. 8) På knappens klik-event tilføjes: Private Sub cmdTilføj_Click() Dim SQL As String If Not IsNull(DLookup("Kundenr", "Kunder", "Kundenr=txtKundenr")) Then SQL = "INSERT INTO Labels ([Kundenr], [Navn], [Adresse], [Postnr], [By])" & vbCrLf & _ "SELECT [Kundenr], [Kundenavn], [Kundeadresse], [Kundepostnr], [Kundeby]" & vbCrLf & _ "FROM Kunder WHERE Kundenr = " & txtKundenr.Value CurrentDb.Execute (SQL) Me.Requery Else MsgBox "Kundenr. " & txtKundenr & " kendes ikke", vbExclamation End If txtKundenr = "" txtKundenr.SetFocus End Sub
Du kan naturligvis kalde dine felter hvad du vil. Grunden til at jeg angiver et feltnavn er bare, at det jo skal passe med den angivne kode. Så hvis du bare passer på, at der er sammenhæng mellem feltnavne og kode er du frit stillet mht. at bruge dine egne navne.
I stedet for tekstfeltet kunne du også benytte en komboliste, sådan som terry foreslår. Denne kunne du så knytte til din Kunde tabel. Dermed ville du have mulighed vor at vælge et kontonummer fra en liste i tillæg til at indtaste nummeret selv. Du kan jo selv eksperimentere med det...
Hej! Tak for svaren! Jeg når desværre ikke at kigge på det idag. Combobox er udelukket da der er ca. 200.000 kunder i databasen så det skal nok være noget lignende det du skriver Kjulius!
well another idea would be to have an extra field (yes/no) in your kunde table. This will then allow you to have a checkbox on your form where you can select the kunde you want to print out.
Now you have a query which selects only the records which you have selected. And if you dont want to have an extra field then just have a table in Access which contains the kunde primary key and a yes/no field. Now you can make a relationship to your kunde table in SQL and do the same. Ja, der er mange måder!
Jeg har kigget på det og kan ikke få det til at virke. Har prøvet at følje din anvisning til punkt og prikke. Nu er det sådan at jeg også har Access på engelsk, men umiddelbart burde det jo ikke volde de store problemer.
Er det sådan at jeg kan lokke dig til at lave selve formen og labelstabellen så at jeg kan se hvordan det skal se ud? Det er såmænd ikke fordi jeg ikke gider men fordi jeg ikke kan få det til at virke og jeg er ved at få grå hår :-) Jeg vil jo så kunne se hvordan du har lavet det!
Jeg ved godt at det "skal" foregå på eksperten men hvis der opstår et problem burde det vel være tiladt at lave det per mail, når bare resultatet postes her, eller? Min mailadresse er: rickie.grayholm@telia.com (Privat. Kan jeg modtage filer) eller rickie.grayholm@thorn.no (Arb. Kan jeg ikke modtage filer - dog .txt)
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.