AndreasCMedlem sedan mars 20011 964 inlägg Jag har en printfunktion i en Access-databas. Två knappar, trycker man på den ena så ska endast den aktuella posten skrivas ut och trycker man på den andra så ska alla poster skrivas ut.
Problemet är bara att alla poster skrivs ut vilken knapp man än trycker på. I hjälpen i Access står det att man kan använda sig utav OpenReport för att tala om vilka poster som ska skrivas ut.
Så här ser koden ut för tillfället och den skriver alltså ut samtliga poster. Hur ska det se ut ifall jag istället vill at endast den aktuella posten ska skrivas ut?
Private Sub Image99_Click()
On Error GoTo Err_Image99_Click
Dim stDocName As String
stDocName = "Faktablad"
DoCmd.OpenReport stDocName, acNormal
Exit_Image99_Click:
Exit Sub
Err_Image99_Click:
MsgBox Err.Description
Resume Exit_Image99_Click
End Sub
SBMedlem sedan maj 2000194 inlägg Skapa en fråga som returnerar önskad post som sedan rapporten Faktablad baseras på. Skriv in ett villkor för ID-fältet enligt Formulär![Formulärnamn]![Kontrollnamn] i din fråga.
AndreasCMedlem sedan mars 20011 964 inlägg Kan du specifera det där? När det gäller databaser och programmering så har jag en del att lära. Jav vet ju hur man gör en fråga, men jag förstod ändå inte vad du menade riktigt. Kan du kanske specifera lite mer i detalj?
SBMedlem sedan maj 2000194 inlägg Hej igen!
Skapa först en fråga där du anger alla de fält som skall vara med i din rapport (Faktablad). Se till att ett av fälten har unika värden, förslagsvis ett räknarefält med namnet ID. I detta ID-fält anger du ett villkor som refererar till motsvarande ID-kontroll (t ex en osynlig textruta)i ditt formulär (om du nu har skapat ett sådant som utskriften skall styras ifrån...). Om du i din fråga skriver in en referens som villkor till denna textruta enligt exemplet i mitt tidigare inlägg så blir rapporten begränsad till denna enda post.
Jag brukar själv alltid tillämpa denna metod.
Mvh
/SB
AndreasCMedlem sedan mars 20011 964 inlägg Ok, då förstår jag. Men kan man inte göra detta med en Rapport lika gärna? Jag menar, kan man inte länka ihop rapporten med formuläret på det sättet du beskrev?
MVH Andreas
AndreasCMedlem sedan mars 20011 964 inlägg Förlåt, jag kom just på varför detta inte skulle gå. Då kan man ju inte skriva ut alla rapporterna vid behov.
Jag ska testa det du sa.
AndreasCMedlem sedan mars 20011 964 inlägg Jag har testat det du sa men förstår inte riktigt hur jag ska få det att fungera. Jag kom att tänka på en annan sak. Jag har en knapp för att förhandsgranska en rapport, och när man trycker på den så förhandsgranskas bara den aktuella posten. Så här ser koden ut för detta:
Private Sub Filgranskning_Click()
On Error GoTo Err_Filgranskning_Click
If IsNull(Me![ID]) Then
MsgBox "Skriv adressinfo innan du förhandsgranskar faktablad."
Else
DoCmd.DoMenuItem acFormBar, acRecordsMenu, acSaveRecord, , acMenuVer70
DoCmd.OpenReport "Faktablad", acPreview, , "[ID] = " & [ID]
End If
Exit_Filgranskning_Click:
Exit Sub
Err_Filgranskning_Click:
MsgBox Err.Description
Resume Exit_Filgranskning_Click
End Sub
Eftersom ID finns med i koden och detta fält även finns med i tabellen där uppgifterna hämtas så visas ju endast den aktuella posten. Jag kom nu att tänka på ifall man kan konvertera denna kod till att skriva ut istället för att förhandsgranska. Då skulle man ju kunna skriva ut rapporten med information för bara den aktuella posten. Kan man göra så häroch hur ska koden se ut?
SBMedlem sedan maj 2000194 inlägg Utan att själv ha prövat...byt ut 'acPreview' mot 'acNormal'.
AndreasCMedlem sedan mars 20011 964 inlägg Det funkade finfint. Tack för det.
AndreasCMedlem sedan mars 20011 964 inlägg Kanske du kan hjälpa mig med en sak till. Hur kan man göra mouseovers i en Access-databas. Du kan kolla in detta i mitt tidigare inlägg, hjälp med on_click event. Jag skrev det i detta forumet men bad sedan att få det flyttat till Visual Basic forumet, så det ligger där numera.
SBMedlem sedan maj 2000194 inlägg Det enklaste torde vara att använda två lika stora knappar (med olika bilder på)och använda visible-egenskapen ihop med händelserna MouseDown och MouseUp (eller på svenska Vid musknapp ned resp. Vid musknapp upp)
T ex:
Private Sub cmdChange_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
cmdChange1.Visible=False
cmdChange2.Visible=True
End Sub
och
Private Sub cmdChange_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
cmdChange1.Visible=True
cmdChange2.Visible=False
End Sub
/SB
AndreasCMedlem sedan mars 20011 964 inlägg Ok. Vad jag börjar med är alltså att infoga en knapp eller en bild och sedan skriver koden du gav mig för den. Men hur får jag sedan in den andra bilden. Vill du förklara lite mer om bilderna, hur jag ska få in dem och vilken kod som ska gå för vilken knapp? Detta är säkert hur lätt som helst men just nu är jag alldeles för sliten för att fatta det.
SBMedlem sedan maj 2000194 inlägg Du skapar två exakt lika stora knappar med två olika bilder på som du sedan infogar på exakt samma ställe.
/SB
AndreasCMedlem sedan mars 20011 964 inlägg Namnet på dessa bilder ska alltså vara cmdChange1 resp. cmdChange2?
AndreasCMedlem sedan mars 20011 964 inlägg Det löste sig. Tack för hjälpen :)