Report Access en VB.NET

cs_dragon Messages postés 2336 Date d'inscription samedi 14 juillet 2001 Statut Membre Dernière intervention 5 mai 2009 - 15 juin 2004 à 16:45
cs_dragon Messages postés 2336 Date d'inscription samedi 14 juillet 2001 Statut Membre Dernière intervention 5 mai 2009 - 15 juin 2004 à 17:59
quelqu'un peu m'aider a ouvrir un rapport Access à partir de VB.Net 2003 ???

j'immagine que je dois faire une référence a Access 8.0 dans VB.Net, puis ouvrir une application en background

ensuite ouvrri un rapport et l'afficher en premier plan, puisque je veux pas que le rapport apparaisse derrière mon application Access

je sais pas pourquoi, ça plante totu le temps quand je fais une référence a Access ??? pourtant ça a toujours bien amrcher en VB6.0 ???

3 réponses

cs_dragon Messages postés 2336 Date d'inscription samedi 14 juillet 2001 Statut Membre Dernière intervention 5 mai 2009 6
15 juin 2004 à 17:06
il me manque plus comment mettre l,application access en premier plan ??? pour le reste, voici le code

dans mes variable global
Dim soft As Access.Application

dans mon form load
soft = New Access.Application

et ...
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim temp As String
Try
temp = soft.CurrentDb.Version
Catch
soft.OpenCurrentDatabase("C:\Documents and Settings\savmax\Mes documents\Visual Studio Projects\HeureW\HeureW2.mdb")
End Try
soft.DoCmd.OpenReport("Tb_Employe", Access.AcView.acViewPreview)
soft.DoCmd.Maximize()
End Sub

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
soft.CloseCurrentDatabase()
soft.Quit()
soft = Nothing
End Sub
0
cs_dragon Messages postés 2336 Date d'inscription samedi 14 juillet 2001 Statut Membre Dernière intervention 5 mai 2009 6
15 juin 2004 à 17:34
ça avance lentement mais surement

j'immagine que je vasi devoir utiliser l'API
Private Declare Function SetForegroundWindow Lib "user32" Alias "SetForegroundWindow" (ByVal hwnd As Long) As Long

oki, mais comment recevoir mon hwnd ???
0
cs_dragon Messages postés 2336 Date d'inscription samedi 14 juillet 2001 Statut Membre Dernière intervention 5 mai 2009 6
15 juin 2004 à 17:59
j'ai trouvé ceci

    Private Declare Function GetDesktopWindow Lib "user32" () As Long
    Private Declare Function GetWindow Lib "user32" ( _
                                ByVal hWnd As Long, _
                                ByVal wCmd As Long) As Long
    Private Declare Function GetWindowText Lib "user32" Alias "GetWindowTextA" ( _
                                    ByVal hWnd As Long, _
                                    ByVal lpString As String, _
                                    ByVal cch As Long) As Long

    Private Const GW_CHILD = 5
    Private Const GW_HWNDNEXT As Long = 2

    Public Function HwndFenetre(ByVal Texte As String) As Long

        ' Recherche le handle de la première fenêtre contenant
        '   le Texte dans le titre

        Dim Titre As String, hWnd As Long, r As Long
        Dim i As Integer

        ' Handle du bureau
        hWnd = GetDesktopWindow()
        ' Cherche la première fenêtre lui appartenant
        hWnd = GetWindow(hWnd, GW_CHILD)
        Do While hWnd <> 0
            ' Récupère le nom de la fenêtre
            For i = 1 To 255
                Titre += " "
            Next i
            r = GetWindowText(hWnd, Titre, 255)
            Titre = Left(Titre, r)
            ' Terminé si le nom correspond
            If UCase(Titre) Like UCase("*" & Texte & "*") Then
                HwndFenetre = hWnd
                Exit Do
            End If
            ' Sinon, cherche la fenêtre suivante
            hWnd = GetWindow(hWnd, GW_HWNDNEXT)
        Loop

    End Function


sauf que le titre il me retourne toujours 0 ??? je susi sous .net
0
Rejoignez-nous