Virksomheder er på vej fra store sprogmodeller, der svarer på spørgsmål, til AI-agenter, der kan udføre opgaver på egen hånd. Det gør teknologien mere nyttig – og langt mere risikabel.
SELECT [Postnr-tabe].PostNr, [Postnr-tabe].By, [Postnr-tabe].Km, [Pris-tabel].Pris, [pris]*[km] AS Total_kr FROM [Postnr-tabe], [Pris-tabel] WHERE ((([Postnr-tabe].Km)>=[minkm] And ([Postnr-tabe].Km)<=[maxkm]));
Men du får ikke dem med hvor afstanden er under MINKM og dem over MAXKM
Havde håbet på man "bare" kunne lave en forespørgsel med det kriterie at når nu hvert Bys Km-antal lå imellem KMMIN og KMMAX i Pris-tabellen, så kunne prisen gives for den by.
PostnrTabellen udvides med et prisfelt Der oprettes en formular for pristabellen - i denne indlægges nedenstående kode:
Når formularen lukkes - testes der om der er sket ændringer - hvis ja - omregnes alle prisfelter i postnr-tabellen - på basis af den aktuelle pristabel.
Er der ikke sket ændringer - så spørges der, om der alligevel skal ske en opdatering - f.eks. ved ændring af KM for et postnr - eller tilføjelse af nyt POSTNR. (Her burde der nok være en kobling...- kan evt. konstrueres, hvis du kan anvende princippet)
På denne måde vil postnr-tabellen altid indeholde de aktuelle priser.
Check selv om tabelnavnene er korrekte.
Tabellerne ser således ud: PostNrTabel: -feltNr -0 postnr -1 by -2 km -3 pris
PrisTabel: -0 ID (løbenr) -1 Min -2 Max -3 Pris
KODE: ===== Option Compare Database Option Explicit Dim ajf As Boolean, db, postTab As Recordset, prisTab As Recordset, pTabel(), antalPriser Private Sub Form_Open(Cancel As Integer) ajf = False End Sub Private Sub Form_AfterUpdate() ajf = True End Sub Private Sub Form_Close() Dim sv If ajf = True Then MsgBox ("Priser i postnrtabel omregnes...") ajfPostnrPriser Else sv = MsgBox("Der er ikke sket ændringer af priser - vil du opdatere PostnrTabel alligevel?", vbYesNo) If sv = 6 Then ajfPostnrPriser End If End If End Sub Private Sub ajfPostnrPriser() Dim f, nypris Set db = CurrentDb bygInternPrisTabel 'priser overføres til intern tabel
Set postTab = db.OpenRecordset("postnr") For f = 1 To postTab.RecordCount With postTab nypris = findNypris(.Fields(2)) 'via afstand .Edit .Fields(3) = nypris .Update .MoveNext End With Next f End Sub Private Sub bygInternPrisTabel() Dim f Set prisTab = db.OpenRecordset("priser") antalPriser = prisTab.RecordCount
ReDim pTabel(antalPriser, 3)
For f = 1 To antalPriser With prisTab pTabel(f - 1, 0) = .Fields(1) 'minimum pTabel(f - 1, 1) = .Fields(2) 'maksimum pTabel(f - 1, 2) = .Fields(3) 'pris pr. tons .MoveNext End With Next f End Sub Private Function findNypris(afstand) Dim f For f = 0 To antalPriser - 1 If afstand >= pTabel(f, 0) And afstand <= pTabel(f, 1) Then findNypris = pTabel(f, 2) Exit Function End If Next f End Function
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.