Just nu i M3-nätverket
Gå till innehåll

Upprepningar


Ech

Rekommendera Poster

Jag har en databas med en tabell, där jag dokumenterar "fel" jag har ett rapport baserad på tabellen där jag plockar ut data med en urvalsfråga *MELLAN Datum() OCH DatumLäggTill("d";-7;Datum())*veckovis sorterad, nu skulle jag vilja ha en ytterligare sortering där samma fel som inträffat mer än låt säga 2-3ggr loggas, för att kunna fånga upp återkommande felorsaker...

nån hejjare därute som kan hjälpa mej?

 

Tacksam

 

 

Länk till kommentar
Dela på andra webbplatser

Vad är det du vill ha?. En rapport/fråga med bara de fel som förekommit mer än x ggr under en vecka eller de fel som förekommit även tidigare veckor eller vill du gruppera rapporten så att de återkommande felen ligger först???? Fick du ut något av mitt förra svar?

 

Länk till kommentar
Dela på andra webbplatser

Jag har flera rapporter, men en av dom som bygger på denna "feltabell" sorterar data från dagens datum och 7 dagar tillbaka.

Jag skulle vilja lägga till en pararell rapport som bygger på samma tidsintervall, MEN bara har sådan data som upprepat sej tex. 2 ggr

 

Ex.

Utlöst automatsäkring ställverk 3.

Larm Rotationsvakt.

Låg temp eldopp.

Larm Rotationsvakt.

Brandlarm.

Låg temp eldopp.

etc. etc.

 

Med ett utdrag av ovan inmatade fel, skulle jag vilja att man fick ut en rapport med bara dom larmen som upprepat sig,alltså:

 

Larm Rotationsvakt.

Låg temp eldopp.

 

men eftersom antalet olika fel är i det närmaste obegränsat, så funkar det ju inte att tex. bygga en urvalsfråga efter en viss mening i larmtexten.

 

Länk till kommentar
Dela på andra webbplatser

Det resultatet får du med den fråga jag gav tidigare. Är du inte bekant med SQL? Öppna frågerutnätet > Välj Visa > SQL Klistra in mitt SQL-uttryck. Byt ut tabell och fältnamn och kör frågan så får du se vad du får. Du kan sedan välja Visa > Design så ser det ut som vanligt. Du kan då lägga till datumurval och annat du behöver.

 

[inlägget ändrat 2003-08-25 22:36:07 av Erki]

Länk till kommentar
Dela på andra webbplatser

Nej jag är inte bekant med Sql, men jag ska försöka mej på att klistar in din förra sträng (använder Access97)

om du får till detta ska jag ge dej en ännu svårare nöt att knäcka :)

 

 

 

Länk till kommentar
Dela på andra webbplatser

SELECT Larmtext , Count(Larmtext) AS Larmtext FROM Larmbok

GROUP BY fel

HAVING Count(Larmtext>2;

 

I den strängen jag fick av dej så bytte jag ut ordet fel* mot det riktiga kolumnnamnet i urvalsfrågan, alltså larmtext.. när jag ska spara och gå tillbaka till Designläge får jag följande felmeddelande:

Tecken efter slutet på SQL-uttryck

Och ordet SELECT blir markerat i textsträngen

 

Hela SQL-strängen i urvalsfrågan ser ut på följande sätt:

SELECT Pannbok.Datum, Pannbok.Tid, Pannbok.Namn, Pannbok.PC, Pannbok.Anläggning, Pannbok.[Anl-del], Pannbok.Status, Pannbok.Larmtext, Pannbok.[Orsak/Åtgärd]

FROM Pannbok

WHERE (((Pannbok.Datum) Between Date() And DateAdd("d",-7,Date())) AND ((Pannbok.Status)="U-Larm")) OR (((Pannbok.Datum) Between Date() And DateAdd("d",-7,Date())) AND ((Pannbok.Status)="D-Larm"))

ORDER BY Pannbok.Datum DESC;

SELECT Pannbok.larmtext, Count(Larmtext) AS Pannbok.Larmtext FROM Pannbok

GROUP BY Larmtext

HAVING Count(Larmtext)>2;

 

Din sträng ligger sist och genererar ett felmeddelande, kan du se vad problemet är?

 

[inlägget ändrat 2003-08-26 09:33:10 av Ech]

[inlägget ändrat 2003-08-26 09:42:19 av Ech]

Länk till kommentar
Dela på andra webbplatser

Jag förstår inte riktigt vad det är du vill ha men om det bara är en lista med de larmtexter som förekommit mer än än gång under senaste vecka förutsatt att de är av typen U-Larm eller D-Larm ska du bara ha följande uttryck i din fråga.

 

SELECT Larmtext FROM Pannbok

WHERE Datum Between Date() And DateAdd("d",-7,Date()) AND (Status="U-Larm" Or Status="D-Larm")

GROUP BY Larmtext

HAVING Count(Larmtext)>1;

 

Du hade lagt ihop två uttryck

SELECT......;SELECT....; Det funkar inte.

 

Access har en förmåga att lägga till en massa onödiga paranteser, ibland underlättar det läsningen men oftast blir det grötigt. Dessutom skriver Access alltid till tabellnamnet men som här där du bara har en tabell är det onödigt.

 

Länk till kommentar
Dela på andra webbplatser

Tack Erki. det löste sig finfint.. jag var tvungen att ändra från PM till text i inmatningen, för att kunna ändra till gruppering.

Ett poäng är du väl värd :)

 

Länk till kommentar
Dela på andra webbplatser

Erki...

jag skulle vilja att Access skriver ut en rapport

automatiskt. problemet jag har, är att jag har en databas med underhållsjobb, och tex. så vill jag föra in att

jag just bytt olja på en växellåda, men jag vet att den ska bytas igen om ett halvår...då skulle jag vilja att när man skrivit in det, och datumen börjar närma sig halvåret, tex. 1 dag innan...då ska Access

leverera en rapport, så jag görs påmind om oljebytet

 

1. Jag har i min databas, en rapport som jag skulle vilja ha utskriven med automatik,

tex. att utskriften startar vid ett speciellt klockslag varje dag.(om det finns nån datum som stämmer)

2. Rapporten har Datum när den skrevs in, som man ev.kunde sortera på... även en "startdatum"

för arbetet..det skulle man ju helst vilja att den automatiska utskriften skulle känna av,

och skriva ut rapporten samma dag då arbetet skall påbörjas.

3. Jag har vevat denna fråga ett antal gånger men inte fått ordning på´t...vad tror du om en sådan funktion?

 

 

 

Länk till kommentar
Dela på andra webbplatser

Den här frågan har varit uppe tidigare. Det går att lösa. Hur beror på om databasen är igång dygnet runt eller stängs ner varje dag. Om vi utgår från att den startas varje morgon hade jag om det inte redan finns skapat ett formulär som är det första användaren ser. Under Verktyg > Start anger du vilket formulär som ska öppnas automatiskt då databasen öppnas. I formulärets egenskap skapar du en händelse Vid öppning. Gör först en kontroll om det finns något arbete som ska göras. Om så skriv ut rapporten med aktuella arbeten.

 

Länk till kommentar
Dela på andra webbplatser

Låter som en bra start, du förstår vad jag menar iaf. Databasen brukar vara igång dygnet runt , men eftersom inte backupen tar en kopia av den i öppet läge så måste den stängas emellanåt.

1.Om vi då förmodar istället att den startas varje morron.

2.skulle då vilja att den gick igenom tabellen "arbetsorder"

3.Om det finns några arbetsordrar med en startdatum, idag eller allra helst imorron, (för att kunna få lite förberedningstid)så ska det generera en rapport för utskrift.

låter det som nån utopi..?

 

Länk till kommentar
Dela på andra webbplatser

Är du med på min beskrivning av startformulär? Skapa följande händelseprocedur för Vid Öppning

Private Sub Form_Open(Cancel As Integer)
Dim Imorgon
Imorgon = Date + 1
If DCount("[Arbetsdatum]", "Arbetsorder", "[Arbetsdatum] = #" & Imorgon & "#") > 0 Then
      DoCmd.OpenReport Rapportnamn, , , "Arbetsdatum = " & Imorgon
End If

End Sub

 

Första och sista raden skapar access själv. Jag har utgått från att du i tabellen har ett fält Arbetsdatum. Rapportnamnet byter du ut. Även här utgår jag från att du har ett fält Arbetsdatum.

 

[inlägget ändrat 2003-08-27 22:49:43 av Erki]

Länk till kommentar
Dela på andra webbplatser

Kastar mej över databasen så fort jag kommer till jobbet imorron, jag skapar nog en ny databas för testningens skull innan jag kör "skarpt" så kom gärna med ideer så bygger jag tabeller och raport efter dom.

 

Tack Erki

 

Länk till kommentar
Dela på andra webbplatser

Har lagt in kodsträngen i händelseprocessen för formuläret vid öppna event, men får ett felmeddelande om kompileringsfel, odefinierad variabel...

Har en tabell döpt till Arbetsorder och en rapport döpt till Arbetsorder1, båda har en kolumn för arbetsdatum. koden ser ut så här:

Private Sub Form_Open(Cancel As Integer)

Dim Imorgon

Imorgon = Date + 1

If DCount("[Arbetsdatum]", "Arbetsorder", "[Arbetsdatum] = #" & Imorgon & "#") > 0 Then

DoCmd.OpenReport Arbetsorder1, , , "Arbetsdatum = " & Imorgon

End If

 

End Sub

 

hittar du nåt tokigt?

 

Länk till kommentar
Dela på andra webbplatser

Testa det här:

 

Private Sub Form_Open(Cancel As Integer)
Dim IMorgon
IMorgon = Date + 1
If DCount("[Arbetsdatum]", "Arbetsorder", "[ArbetsDatum] = #" & IMorgon & "#") > 0 Then
   DoCmd.OpenReport "Arbetsorder1", , , "ArbetsDatum=#" & IMorgon & "#"
End If

End Sub

 

Jag missade att tala om att du måste ha citationstecken runt raportnamnet. Runt datum måste du sätta brädgårdar. Jag hade bara med det på ena stället.

 

Länk till kommentar
Dela på andra webbplatser

Erki

Kan tyvärr inte testa förrän imorron, men en annan sak jag funderar över är...

Kan man bygga ett menyträd, likt utforkaren med

+ tecknet framför, när det finns underliggande information i access 97?

såg ett program där det fanns ett hierarktiskt träd, där man kunde klicka sig ner på detaljerad nivå, troligtvis var det byggt i access..

 

Länk till kommentar
Dela på andra webbplatser

Jag har aldrig gjort något sådant. Det närmaste jag har varit är en receptsamling jag skapade för något år sedan. Där har jag ett formulär i vänster halva av skärmen. Överst en listbox med kategorier. Efter att ha valt en kategori visas en lista med alla receptnamn i den valda kategorin. När man dubbelklickar på en rad med receptnamn har jag lagt en händelse som i högra delen av fönstret öppnar ett formulär med all information om valt receptnamn. M a o går det klicka sig ner i ett träd men jag tror att det kan vara svårt att presentera det som en trädstruktur liknande utforskaren.

 

Länk till kommentar
Dela på andra webbplatser

KUnde inte hålla mej, så jag for till jobbet:)

Private Sub Form_Open(Cancel As Integer)

Dim IMorgon

IMorgon = Date + 1

If DCount("[Arbetsdatum]", "Arbetsorder", "[ArbetsDatum] = #" & IMorgon & "#") > 0 Then

DoCmd.OpenReport "Arbetsorder1", , , "ArbetsDatum=#" & IMorgon & "#"

End If

 

End Sub

 

Får ett kompileringsfel *markerad text*

Hade du haft en mailadress så kunde du fått leka med en liten databas från mej.

Jag funderar lite på om koden ska vara i Open form, eller i nån timerfunktion?

 

Länk till kommentar
Dela på andra webbplatser

Jag vet inte om det är radbrytningarna som förvillar? Det du har grönmarkerat ska stå på en egen rad. Jag har testkört min kod mot en liten tabell och det funkar. Skickar dig min databas så får du se hur jag gjort det.

 

Länk till kommentar
Dela på andra webbplatser

I koden du fick i mailet hade jag skrivit

DoCmd.OpenReport "Arbetsorder1", acViewPreview, , "ArbetsDatum=#" & IMorgon & "#"

acViewPreview gör att rapporten öppnas i förhandsgranskningsläge. Om du tar bort den men lämnar alla kommatecken kommer rapporten att skrivas ut direkt.

 

Vill du skriva ut rapporten vid en viss tidpunkt får du i stället använda Händelsen Vid klocka, längre ner i listan. Där skriver du

IMorgon = Date + 1
DoCmd.OpenReport "Arbetsorder1", , , "ArbetsDatum=#" & IMorgon & "#"

Vid Tidsintervall sätter du tiden i millisekunder som ska gå mellan rapportutskrifterna, 24 timmar > 86400000 om jag räknar rätt. Första utskriften kommer att ske 24 timmar efter att formuläret har öppnats. Detta kan bli bökigt om du inte lägger backupen direkt efter att rapporten skrivits ut. Startar databasen och öppnar formuläret för att timern ska börja räkna mot 24 timmar igen. Ett annat sätt kan vara att skapa en bat-fil som startar databasen och ha ett autostartformulär som startar rapporten som vårt första försök. Med Windows schemaläggare sätter du sedan att bat-filen ska köras vid ett bestämt klockslag.

 

Länk till kommentar
Dela på andra webbplatser

"C:\Program\Microsoft Office\Office\msaccess.exe" C:\mapp\fil.mdb

 

Sökvägen till msaccess beror på vilken version du kör. Om sökvägen innehåller mellanslag måste du sätta citationstecken runt.

 

Allt ska stå på en rad!!

 

[inlägget ändrat 2003-09-01 22:17:49 av Erki]

Länk till kommentar
Dela på andra webbplatser

Funkar klockrent Erki, har dock inte testat bat-filen, har nöjt mej med en kommandoknapp som drar igång sökningen i tabellen, och som skriver ut allt som är Activt i kolumnen "arbetsdatum"

 

Tack så jättemycket

 

Länk till kommentar
Dela på andra webbplatser

Arkiverat

Det här ämnet är nu arkiverat och är stängt för ytterligare svar.

×
×
  • Skapa nytt...