Hej jag skulle vilja få lite hjälp med att skapa ett löpande nummer för en beställningsfunktion. Flera olika personer ska beställa och varje person har ett eget serienummer av typen DG021, där DG är initialer, 02 är året och 1 står för beställningsnummret. 1 ska alltså öka för varje beställning och mitt problem är att jag har många fält i tabellen som detta ska utföras på följande kod ger samma nummer tex DG023 på alla poster i tabellen istället för att öka. Koden kollar oxå hur många poster det finns i tabellen så att alla poster kan uppdateras(count_post), men detta fungerar. Är ytterst tacksam för hjälp med detta!!!! Om du ska lägga till ett numer skulle jag laga serierna i en separat tabell med tre fält:<br> Om du använder en databas som stöder triggers skull det vara mycket lämpligt att använda. Det kan se ut något liknande.Egen räknare, löpnummer
KOD:
'Här hämtas det senaste numret från loggen
MySQL = "SELECT * FROM tblMatLevLogg WHERE ABKRef = '&strABKNamn&' ORDER BY ID DESC"
Set MyRs = MyConn.Execute(MySQL)
If MyRs.EOF Then
RekNrLogg = 1
Else
RekNrLogg = MyRs("RekNr")
End If
'Här ska de löpande nya numrena stoppas in i tabellen
for i = 1 to count_post
RekNr = "RekNr" & i
RekNr = RekNrLogg+1
'RekNr = RekNrLogg
MySQL1="UPDATE "&strTempTbl&" SET RekNr = "&RekNr&""
MyConn.Execute(MySQL1)
NextSv: Egen räknare, löpnummer
Initialer (Text)<br>
År (Integer YYYY) <br>
Senast (Integer) <br>
<br>
Så hämta och updatera dessa värdena. <br>
<br>
Men om du skall hämta nästa värde i serien. Kan du göra så här.
Vet inte varför du utelämnat ett filter i set frågan eller farför du skall updatera flera poster. Eller updatera poster över huvudutaget. <br>
<br>
Denna funktionen bär nog fungera i ditt fall.
<code>
Function NextNumber(Initialer, År, Conn)
Dim rsTemp
Dim strYear
strYear = Right("00" & År, 2)
Set rsTemp = Conn.Execute("SELECT Max(CLng(Mid(RekNr," & Len(Initialer) + 3 & "))) FROM tblMatLevLogg WHERE RekNr Like '" & Initialer & strYear & "*' ORDER BY ID DESC")
If rsTemp.EOF Then
NextNumber = Initialer & strYear & "1"
ElseIf IsNull(rsTemp("RekNr")) Then
NextNumber = Initialer & strYear & "1"
Else
NextNumber = Initialer & strYear & rsTemp("RekNr") + 1
End If
End Function
</code>Sv: Egen räknare, löpnummer
<code>
CREATE TRIGGER [MyOrderTabel] ON [MyUSer].[MyDB]
AFTER INSERT
AS
/*Lägger till det nya OrderID i en annan tabell*/
INSERT INTO MyHistory(OrderID,KundID,Datum, ArtikelId)
VALUES(inserted.OrderID,inserted.KundId,inserted.Datum,inserted.ArtikelId)
GO
</code>
Observera att exemplet bara visar hur en sådan trigger kan se ut, den rerfererar inte rakt av till ditt exempel.