Onderhoud database

Status
Niet open voor verdere reacties.

Reinholdkorst

Gebruiker
Lid geworden
22 aug 2010
Berichten
10
Ik wil graag een database gaan maken van mijn onderhouds contracten voor cv ketels nu ben ik al een tijd bezig met hoe ik te werk moet gaan en heb al veel op forums gekeken maar ik snap er helemaal niets van wie wil mij helpen.

Wat ik graag wil is:
Een invoer formulier Naam, Adres, Postcode, Plaats, Tel.Thuis, Tel Mobiel, Bedrag, Datums (dit was me wel gelukt maar verder)

ik wilde hierbij 2Knoppen 1 soort gastoestellen en 1 logboek en met de knoppen moet ik dus per klant een ander formulier kunnen oproepen.

Bij datums moet ik dus elk jaar de datum invoeren wanneer ik bij de klant ben geweest voor onderhoud

Verder wil ik eigenlijk werkbonnen kunnen maken per maand dus op het invoer formulier wil ik eigenlijk een keuzelijst hebben van de maanden wanneer de cv ketel onderhoud moet hebben en dat ik bij werkbonnen dan kan kiezen welke maand hij uit moet printen en dan van elke klant in deze maand een werkbon maakt.
 
Wat is op dit moment het probleem waar je mee zit? Kun je anders een voorbeeldje van de db maken, zodat we eerst kunnen zien hoe hij is opgebouwd?
 
Nou ik heb tot zover een beging pagina een formulier

Naam
Adres
Postcode
Plaats
Tel. Thuis
Tel. Mobiel

Datum
Maand

Gastoestel
Logboek
Prijs

Nu wil het niet lukken om van de maand een keuzevak te maken met de maanden en deze wil ik dan zo maken dat ik een werkbon kan maken dat hij dan per klant uit deze maand een werkbon maakt.
 
Een keuzevak voor de Maandselectie kun je het beste maken met de Wizard. Je kiest dan voor de optie <De waarden zullen worden getypt. Vervolgens vul je bij Kolommen de waarde 2 in. In het raster dat je dan krijgt, ga je de gegevens intypen. Je begint dan met 1 - Januari, 2 - Februari, 3 - Maart etc. De eerste kolom bevat dus alle getallen, de tweede kolom alle maandnamen. In de volgende stap selecteer je Kolom 1 als de te gebruiken kolom, en daarna maak je de lijst af door nog een nette naam te bedenken.
Je lijst ziet er dan zo uit: 1;"Januari";2;"Februari";3;"Maart";4;"April";5;"Mei" etc. Vervolgens typ je bij de Eigenschappen van de keuzelijst bij <Kolombreedten> de waarden 0cm;3cm zodat je alleen de maanden ziet, niet de getallen.
Als je de lijst gaat gebruiken, kies je dus op basis van de naam, maar de echte waarde die je selecteert is het getal. Kies je dus Mei, dan pak je eigenlijk het getal 5. Dat getal kun je in de query voor je rapport gebruiken, waar je de keuzelijst als Criterium kunt gebruiken op het veld [datum]. Daar maak je wel een Maandwaarde van, bijvoorbeeld door Maand:Month([Datum]) als formule te typen. Met het criterium van de keuzelijst in dit berekend veld te gebruiken, selecteer je alle maanden die overeenkomen met de gekozen maand in de keuzelijst. Overigens krijg je dan alle maanden van alle jaren, dus je zult ook nog een Jaarfilter moeten hebben, of bijvoorbeeld filteren op de maand van het huidige jaar.
Probeer het eens uit!
 
Dit is dus allemaal te hoog gegrepen ben er nu al een tijdje mee bezig en mijn hele database zit al in de knoop moet maar weer opnieuw beginnen.
 
Kun je 'm anders meeposten? Voordat je alle schepen verbrandt, want dat kan natuurlijk altijd nog!
En als je 'm post, dan graag ook in een 2003 versie.
 
nou de keuze lijst is gelukt nu kan ik verder bedankt. Maar ik wil graag werkbonnen kunnen uitprinten en dat moet zo worden dat als ik een standaard werkbon maak en wil uitprinten dat hij dan alleen de maand uitprint die ik selecteer en dan van elke klant uit deze maand een aparte bon maakt.
 
Laatst bewerkt:
Dat doe je met een filter op het rapport. Meestal stuur je het rapport aan via een formulier waarop je de klant of de factuur selecteert, waarna je het rapport opent met het geselecteerde record. De code ziet er ongeveer zo uit:

Code:
Private Sub cmdPrint_Click()
    Dim strWhere As String

    If Me.Dirty Then Me.Dirty = False

    If Me.NewRecord Then 'Controleren of je niet op een nieuw record staat.
        MsgBox "Kies eerst een record om af te drukken..."
    Else
        strWhere = "[ID] = " & Me.[ID]
        DoCmd.OpenReport "MyReport", acViewPreview, , strWhere
    End If
End Sub
Hierbij is ID het sleutelveld in de tabel die je op het rapport gebruikt. Dit kan uiteraard een ander veld zijn, dus de naam moet je wel controleren. Hetzelfde geldt voor Me.[ID]; dat is het overeenkomende recordnummer op het formulier. Ook dat kan anders heten.
 
Nou dit wil me niet lukken ik kom wel in de buurd maar dat hij alleen maar de maand wil doen lukt niet hij print gewoon alles
 
Kun je de code voor de filtering posten?
 
Gaan we een stapje terug ;) Je hebt een keuzelijst gemaakt, neem ik aan, want die was gelukt schreef je eerder. Heb je ook een knop gemaakt voor het afdrukken van het rapport? En hoe ziet de code van de keuzelijst er uit?
 
Ik heb geen knop voor afdrukken van raport en kun je ook diingen maken zonder programmacodes maar gewoon met instellingen ik gebruik access 2010
 
misschien is een bestaande oplossing wel een goed alternatief.

Google eens op :

werkbon qb-tim
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan