Springen naar inhoud


- - - - -
DB .NET

Popup Venster Achter Interface

DB Popup

  • Log in a.u.b. om te beantwoorden
Er zijn 6 reacties in dit onderwerp

#1 fvangrieken

fvangrieken

    Starting Developer

  • Leden
  • 18 berichten
    Laatst bezocht 23 mei 2018 21:44

Geplaatst op 06 februari 2013 - 13:08

Hallo,

Ik gebruik een Acces database bij dit programma. Om verschillende printmogelijkheden te kunnen gebruiken gebruik ik Rapporten van Acces die geprint kunnen worden. Die rapporten zij  gebaseerd op een Query in de database waar een parameter (leerlingnummer) moet worden opgegeven.  In principe werkt dit goed, maar het probleem is dat het pop-up venster bijna altijd achter het programma verschijnt en dan vaak niet meer te benaderen is en daardoor loopt dan het programma vast.
Hoe kan ik ervoor zorgen dat dit pop-up venster vóór de interface van het programma verschijnt?

Een voorbeeld van wat ik bedoel met Achter de Userinterface heb ik als attachment meegestuurd.

Code:
De codes die voor de instructie zorgen om het rapport te printen zijn:
		strAppPath = Path.GetDirectoryName(Application.ExecutablePath)
		DataBaseNaam = strAppPath & Path.DirectorySeparatorChar & "KlassenVWO.mdb"
		appAccess = New Access.Application
		appAccess.OpenCurrentDatabase(DataBaseNaam, False)
		appAccess.DoCmd.OpenReport("AlleGegIndividueel", Access.AcView.acViewNormal, , ,Access.AcWindowMode.acDialog)
		appAccess.Quit()


(Naam van de database is uiteraard “KlassenVWO” en de naam van het rapport is: “AlleGegIndividueel”)

Ik hoop dat iemand mij kan helpen.

Bijgevoegde Bestanden



#2 Benno

Benno

    R.I.P.

  • Leden
  • PipPipPipPipPip
  • 949 berichten
    Laatst bezocht 08 mrt 2018 20:32
  • LocatieGyor, Magyarország

Geplaatst op 06 februari 2013 - 13:30

Dus die popup komt uit Access (als ik het goed begrijp)?
Als dat klopt: vraag zelf in je programma op voorhand de waarden voor de parameter(s) en geef die door aan je rapport?
Toch?

#3 Vozzie

Vozzie

    Moderator

  • Leden
  • PipPipPipPipPipPipPip
  • 1855 berichten
    Laatst bezocht 12 jul 2017 13:15
Inzender

Geplaatst op 06 februari 2013 - 20:10

Hy,

Een gokje,...

Probeer eens met Visual Basic Code:
appAccess.DoCmd.OpenReport("AlleGegIndividueel", Access.AcView.acViewNormal, , ,Access.AcWindowMode.acDialog)
te vervangen door Visual Basic Code:
appAccess.DoCmd.OpenReport("AlleGegIndividueel", Access.AcView.acViewNormal, , ,Access.AcWindowMode.acWindowNormal)

Groetjes

#4 fvangrieken

fvangrieken

    Starting Developer

  • Leden
  • 18 berichten
    Laatst bezocht 23 mei 2018 21:44

Geplaatst op 09 februari 2013 - 14:02

Hallo Benno en Vozzi,

Bedankt voor het meedenken. Arjan van Huizen heeft mij de oplossing gegeven. Met een VB programma als front-end en een Acces database als back-end is het zeer lastig om te zorgen dat dergelijke popup vensters altijd op de voorgrond komen. De oplossing is nu om het rapport te laten printen m.b.v. het leerlingnummer dat meegegeven wordt bij  code, zonder dat er een popup venster moet worden opgeroepen om dat leerlingnummer in te vullen.

De query in de Acces database ziet er dan zo uit:
SELECT klas.*, NAW.*, Gegevens.*
FROM (NAW LEFT JOIN Gegevens ON NAW.LLNR = Gegevens.LLNR) LEFT JOIN klas ON NAW.klas = klas.klas;

De Printopdracht in VB ziet er dan zo uit:

Private Sub tsbPrintDecGegevenss_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles tsbPrintDecGegevens.Click
    Dim leerlingID = BepaalGeselecteerdeLeerlingID()
    Dim appAccess As Access.Application

    strAppPath = Path.GetDirectoryName(Application.ExecutablePath)
    DataBaseNaam = strAppPath & Path.DirectorySeparatorChar & "KlassenVWO.mdb"
    appAccess = New Access.Application
    appAccess.OpenCurrentDatabase(DataBaseNaam, False)
    appAccess.DoCmd.OpenReport("DecGegIndividueel", Access.AcView.acViewNormal, , "AlleGegInd![NAW.LLNR]= " & leerlingID & "", Access.AcWindowMode.acWindowNormal)
    appAccess.Quit()
End Sub

De functie die gebruikt wordt in bovenstaande event is:

    Private Function BepaalGeselecteerdeLeerlingID() As Integer

    ' Bepaal of er een regel is geselecteerd
    If dgrLeerlingen.CurrentRow IsNot Nothing Then
    ' Bepaal de LeerlingID van de geselecteerde regel
    Return dgrLeerlingen.CurrentRow.Cells("Gegevens.LLNR").Value
    End If

    End Function

(De database heet: KlassenVWO.mdb, Het rapport dat gebruikt wordt vanuit Accces heet: DecGegIndividueel, de Query in Acces die door het rapport wordt gebruikt heet: AlleGegInd)
Groeten, Frans van Grieken

#5 Benno

Benno

    R.I.P.

  • Leden
  • PipPipPipPipPip
  • 949 berichten
    Laatst bezocht 08 mrt 2018 20:32
  • LocatieGyor, Magyarország

Geplaatst op 10 februari 2013 - 14:26

Bericht bekijkenfvangrieken, op 09 februari 2013 - 14:02, zei:

De oplossing is nu om het rapport te laten printen m.b.v. het leerlingnummer dat meegegeven wordt bij  code, zonder dat er een popup venster moet worden opgeroepen om dat leerlingnummer in te vullen.
Ja, dat was toch wat ik zei?

Bericht bekijkenBenno, op 06 februari 2013 - 13:30, zei:

vraag zelf in je programma op voorhand de waarden voor de parameter(s) en geef die door aan je rapport?


#6 fvangrieken

fvangrieken

    Starting Developer

  • Leden
  • 18 berichten
    Laatst bezocht 23 mei 2018 21:44

Geplaatst op 10 februari 2013 - 15:10

Ja Benno dat klopt.
Alleen Arjan was zo vriendelijk om ook met de codes te helpen hoe ik dit moest aanpakken.

#7 Benno

Benno

    R.I.P.

  • Leden
  • PipPipPipPipPip
  • 949 berichten
    Laatst bezocht 08 mrt 2018 20:32
  • LocatieGyor, Magyarország

Geplaatst op 10 februari 2013 - 15:13

Bericht bekijkenfvangrieken, op 10 februari 2013 - 15:10, zei:

Alleen Arjan was zo vriendelijk om ook met de codes te helpen hoe ik dit moest aanpakken.
Ah, ok. :)





Ook met taq DB .NET, DB, Popup voorzien

0 gebruiker(s) lezen dit onderwerp

0 lid(leden), 0 bezoeker(s), 0 anonieme gebruikers

Inloggen


[DB .NET] Untitled 1

Met dank aan Jürgen voor de jarenlange inzet van visualbasic.be (anno dec 2000)
Met dank aan Mike en Ronneke voor de jarenlange inzet van vbib.be (anno dec 2010)
Met dank aan PascalBianca voor de jarenlange inzet van vbib.be (anno dec 2016)