Visualizzazione dei risultati da 1 a 9 su 9
  1. #1

    [VB] finestra "apri file" in ACCESS (oggetto OpenFileDialog?)

    salve,
    ho appena realizzato un database in ACCESS.
    Ora però vorrei inserire dei nomi di file in una tabella.

    Quindi vorrei che alla pressione di un pulsante mi si aprisse una finestra che ti desse la possibilità di selezionare il file.(come una qualunque finestra "apri file").

    Questa finestra viene rappresentata dall'oggetto "OpenFileDialog" in parecchi linguaggi visuali.

    Ora sto cercando di inserirlo con visual basic(dato che access permette di inserire codice visual basic).

    ho trovato questo codice:
    https://msdn.microsoft.com/library/d...ClassTopic.asp

    solo che non lo riesco ad applicare!!...il mio visual basic 6.3 non riconosce a creare un oggetto OpenFileDialog con la seguente riga!!
    Dim openFileDialog1 As New OpenFileDialog()

    cosa devo fare??
    come posso importare questo tipo di oggetto???

    aiutatemi please!

  2. #2
    Utente di HTML.it L'avatar di hkproj
    Registrato dal
    Jul 2006
    Messaggi
    250
    il codice che hai cercaot sul sito della Micro$oft è per vb.net e non per vb6
    vb.net lo riconosce perchè è un controllo del .net framework (integrato)
    --------------------HkProj------------------

  3. #3
    a ok,quindi come posso avere un oggetto OpedDialogue(o simile) in VB??

  4. #4
    Puoi usare la libreria standard Microsoft CommonDialogs.
    Amaro C++, il gusto pieno dell'undefined behavior.

  5. #5
    Io facevo così:

    al click del pulsante "apri":

    Dim fb As OPENFILENAME
    Call ShowFile(Me, fb)
    fName = Left(fb.lpstrFile, InStr(fb.lpstrFile, vbNullChar) - 1) 'percorso completo

    Su un Modulo di Classe:
    Option Explicit

    Public Const OFN_FILEMUSTEXIST = &H1000
    Public Const OFN_HIDEREADONLY = &H4
    Public Const OFN_PATHMUSTEXIST = &H800

    Public Declare Function GetOpenFileName Lib "comdlg32.dll" _
    Alias "GetOpenFileNameA" (lpofn As OPENFILENAME) As Long

    Public Type OPENFILENAME
    lStructSize As Long
    hwndOwner As Long
    hInstance As Long
    lpstrFilter As String
    lpstrCustomFilter As String
    nMaxCustomFilter As Long
    nFilterIndex As Long
    lpstrFile As String
    nMaxFile As Long
    lpstrFileTitle As String
    nMaxFileTitle As Long
    lpstrInitialDir As String
    lpstrTitle As String
    flags As Long
    nFileOffset As Integer
    nFileExtension As Integer
    lpstrDefExt As String
    lCustData As Long
    lpfnHook As Long
    lpTemplateName As String
    End Type


    Public Sub ShowFile(frm As Form, fb As OPENFILENAME)
    Dim fName As String
    Dim result As Long
    Dim path As String
    path = "C:\"
    With fb
    .lStructSize = Len(fb) 'Size of the structure
    .hwndOwner = frm.Hwnd 'Handle to window opening the dialog
    .hInstance = 0 'Handle to calling instance (not needed)
    .lpstrFilter = "Tutti i file" & vbNullChar & "*.*" & vbNullChar
    .nMaxCustomFilter = 0
    .nFilterIndex = 1 'Default filter is the first one
    .lpstrFile = Space(256) & vbNullChar 'No default filename. Also make room for received path and _
    filename of the user's selection.
    .nMaxFile = Len(.lpstrFile)
    .lpstrFileTitle = Space(256) & vbNullChar 'Make room for filename of the user's selection
    .nMaxFileTitle = Len(.lpstrFileTitle)
    .lpstrInitialDir = path & vbNullChar 'Initial directory is C:\
    .lpstrTitle = "Apri file" & vbNullChar 'Title of file dialog
    .flags = OFN_PATHMUSTEXIST Or OFN_FILEMUSTEXIST Or OFN_HIDEREADONLY
    .nFileOffset = 0 'The rest of the options aren't needed.
    .nFileExtension = 0
    .lCustData = 0
    .lpfnHook = 0
    End With
    result = GetOpenFileName(fb)
    If result <> 0 Then
    fName = Left(fb.lpstrFile, InStr(fb.lpstrFile, vbNullChar) - 1)
    End If
    End Sub


    Ciao

  6. #6
    mmm....appena domani arrivo a lavoro lo provo!!! e poi vi so dire

    GRAZIE veramente!

  7. #7
    OTTMO gfantuzzi....va da DIO!!!!!!!!!!!!!



    ma le prossime volte se non voglio venire a rompervi le scatole, come devo fare a trovare sti componenti nelle DLL?? c'è un manule che tratta questo argomento?

    no pechè se no è impossibile...ci vuole un indovino!

  8. #8
    Le risposte ai mie quesiti le ho sempre trovate in rete.
    Con Access ho una discreta esperienza, chiedi pure quando ti serve.
    Saluti.

  9. #9
    Basta consultare il Platform SDK Microsoft. Comunque era molto più semplice usare il controllo CommonDialog invece di ricorrere alle API della Shell come invece illustra la soluzione proposta da gfantuzzi.
    Amaro C++, il gusto pieno dell'undefined behavior.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.