Avatar billede soenderup Nybegynder
30. juli 2001 - 10:48 Der er 15 kommentarer og
1 løsning

Tilskrive værdi med 1 ved læsning

Kan man ikke automatisk tilskrive indholdet i et felt med \"1\" hvergang der bliver spurgt på en record?

Min SQL ser ud som følger:

SELECT Annonce.AnnonceID, Annonce.Grafik
FROM Annonce INNER JOIN AnnonceType ON Annonce.AnnonceID = AnnonceType.AnnonceID
WHERE ((([AnnonceType]![AnnonceStoerrelseID])=1) AND (([AnnonceType]![AnnoncePlaceringID])=1));

Feltet der skal tilskrives hedder: Hitsafviklet og er placeret i tabellenAnnonce.

/Sønderup
Avatar billede terry Ekspert
30. juli 2001 - 10:54 #1
If you make a query you can call a module(function) which could do this for you.

make your function in a module and callit say tilskrive. Alter you query to something like:

SELECT Annonce.AnnonceID, Annonce.Grafik, tilskrive() as tilsk
FROM Annonce INNER JOIN AnnonceType ON Annonce.AnnonceID = AnnonceType.AnnonceID
WHERE ((([AnnonceType]![AnnonceStoerrelseID])=1) AND (([AnnonceType]![AnnoncePlaceringID])=1));


Avatar billede terry Ekspert
30. juli 2001 - 10:56 #2
You then need to make some code in tilskrive()

for example.

DoCmd.RunSQL \"UPDATE ANNONCE SET HitsAfviklet = Hitsafviklet + 1\"

Avatar billede soenderup Nybegynder
30. juli 2001 - 11:07 #3
Jeg har nu oprettet en Makro (er det ikke det jeg skal?) med indholdet: UPDATE ANNONCE SET HitsAfviklet = HitsAfviklet + 1

Og min SQL:
SELECT Annonce.AnnonceID, Annonce.Grafik, visbanner() AS Udtryk1
FROM Annonce INNER JOIN AnnonceType ON Annonce.AnnonceID = AnnonceType.AnnonceID
WHERE ((([AnnonceType]![AnnonceStoerrelseID])=1) AND (([AnnonceType]![AnnoncePlaceringID])=1));


Og til sidst min fejlmeddelse ;-)
\"DER ER EN IKKE DEFINERET FUNKTION I UDTRYKKET!\"

/Sønderup
Avatar billede soenderup Nybegynder
30. juli 2001 - 11:11 #4
Jeg har nu prøvet at lave funktionen i \"moduler\", men får samme fejlmedelse...

/Sønderup
Avatar billede terry Ekspert
30. juli 2001 - 11:13 #5
macro, never touch em! No, a module with a function. In modules select new, then from the menu select INSERT PROCEDURE and give the new procedure the name visbanner.

In code enter..
DoCmd.RunSQL \"UPDATE ANNONCE SET HitsAfviklet = Hitsafviklet + 1\"




Avatar billede terry Ekspert
30. juli 2001 - 11:18 #6
The visbanner() is trying to find a function with this name. Make sure that the finction is public and not private!
Avatar billede soenderup Nybegynder
30. juli 2001 - 11:27 #7
ok... nu har jeg lavet følgende MODUL ;-)

Option Compare Database
Public Function visbanner()
DoCmd.RunSQL \"UPDATE ANNONCE SET HitsAfviklet = HitsAfviklet + 1\"
End Function

og hvis jeg prøvekører den i visualbasic kører den korrekt, men ikke fra min forespørgsel i access!! 
Jeg får samme fejlmeddelelse!

/Sønderup
Avatar billede terry Ekspert
30. juli 2001 - 11:33 #8
if it works form VB then it should also work from your query!
you can send your dB to dkTeBrSa@europe.lego.com
Avatar billede soenderup Nybegynder
30. juli 2001 - 11:44 #9
den er hermed sendt!

/Sønderup
Avatar billede terry Ekspert
30. juli 2001 - 11:52 #10
OK will get back ASAP!
Avatar billede terry Ekspert
30. juli 2001 - 12:07 #11
change the name of the module to something other than the name of the function Access is getting confused!
Avatar billede terry Ekspert
30. juli 2001 - 12:14 #12
soenderup> Your still going to have problems though! You CANT update att thesame time your selecting on the record. Another solution is to put your hit sin another tabel!
Avatar billede terry Ekspert
30. juli 2001 - 12:25 #13
soenderup> looking closer at your problem, this is maybe not the correct way to do this.
If I understand you problem, you want to update a specific \"annonce\" record when it gets opened, I was thinking that it was another record. So as things are now, you cant! I still would suggest that you moce your hits to another tabel using the primary key (annonceID) as the primary key in the hits table.
Avatar billede soenderup Nybegynder
30. juli 2001 - 13:17 #14
Stoop!

Jeg kan godt se, hvad du mener med at skille hits ud af tabellen, hvilket vel egentligt også ville være tilfældet, hvis jeg havde normaliseret DB\'en!

Men.. det er kun prototyping... den endelige version skal jeg udvikle på en MS-SQL2000 server. Så lad være med at fordybe dig mere i dette spørgsmål.

Men ellers tak for hjælpen ;-)

/Sønderup
Avatar billede terry Ekspert
30. juli 2001 - 13:20 #15
In SQL SERVER things are much easier!
Avatar billede soenderup Nybegynder
30. juli 2001 - 13:23 #16
nemlig ;-)
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
Dyk ned i databasernes verden på et af vores praksisnære Access-kurser

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester