bestandpaden opslaan in tabel

Status
Niet open voor verdere reacties.

xtremegamer

Gebruiker
Lid geworden
23 mrt 2006
Berichten
273
Hoi,

Ik zit al enkele dagen te breken over het volgende :

Gebruiker krijgt Open File dialog > kiest file > padnaam - tijd toevoeging word dan aan aparte table toegevoegd die samen hangt met een klant-ID.

Open File dialog krijg ik te voorschijn maar krijg het op geen enkele manier voor elkaar om die op te slaan in de aparte tabel.

als ook zou na toevoeging deze link als volg link beschikbaar moeten zijn zodat de gebruiker deze file terug kan opvragen.

Reden waarom ik deze niet in de database wil plaatsen is omdat het om nog al redelijk wat documenten gaat en al heb gelezen dat Access soort hard-limit heeft op 2Gb.

alle hulp welkom.

Dank bij voorbaat

Xtremegamer
 
Zonder je code kunnen we niet zoveel.
 
Wel ik had volgende code van http://www.access-programmers.co.uk/forums/showthread.php?t=210476 gehaald

Tabelklanten = klanten tabel uniqe ID per klant
TabelOffertes = offertes tabel uniqe ID van klant samen hangen met uniqe id van offerte die 2 velden heeft (pad | datum aangemaakt)

Formulierklant = nieuw offerte toevoegen doormiddel van knop.
Rapportklant = knop die nieuw venster opent met alle offertes voor die klant.



Code:
Private Sub Command0_Click()
'References.AddFromFile "C:\System.Windows.Forms.dll"
'Import System.Windows.Forms

Dim dlgOpen As FileDialog
Dim sPathAndFilename As Variant


Set dlgOpen = Application.FileDialog(msoFileDialogFilePicker)

With dlgOpen
.AllowMultiSelect = True
.Show

For Each sPathAndFilename In .SelectedItems
MsgBox "The path is: " & sPathAndFilename
Hyperlink.IsHyperlink = True
Hyperlink = sPathAndFilename & "#" & sPathAndFilename

Next sPathAndFilename



End With
Me.Dirty = False


End Sub

Maar kreeg een error bij Me.Dirty

deed ik die weg wou ie niet verder gaan.

maar ik denk dat bovenstaande wel het dichtst bij ligt bij wat ik nodig heb enkel de store functie nog & datum aangemaakt

Alvast bedankt
 
OK, wat ik niet snap: je laat een dialoogvenster zien waarin je meerdere bestanden kunt kiezen. Vervolgens heb je een tekstveld met de naam Hyperlink. Dat is een bijzonder ongelukkig gekozen veldnaam en objectnaam, want Hyperlink is een beschermd woord; je hebt geen idee hoe Access daarmee omgaat.
Dus tip 1: zorg er altijd voor dat veldnamen, tabelnamen en tekstveldnamen geen beschermde woorden zijn.
Vervolgens ga je met een lus door alle gekozen bestanden. En wat doe je daar mee? Allemaal aan hetzelfde veld toewijzen! Dus het tekstveld Hyperlink bevat, als je 6 bestanden selecteert, achtereenvolgens eerst de naam van Bestand 1, dan Bestand 2 etc. tot het laatste bestand. Welke bestandsnaam laat hij staan? De laatste...
Tip 2 is dus: zorg ervoor dat je eerst een recordset opent, en gebruik het commando AddNew om elk item op te slaan in een nieuw record. Bij het opslaan in de juiste tabel moet je alle overige noodzakelijke recordinfo (zoals KlantID) natuurlijk ook meenemen.
 
Hoi,

Bedankt voor de snelle response.

heb je enige voorbeelden hoe zo een opslaan functie zou werken ? , ik vind hiervan namelijk niets of nauwelijks terug.

zodra ik de store functie bekeken heb begrijp ik welke varianten die meeneemt.

Dank bij voorbaat
 
Een functie ziet er dan ongeveer zo uit:
Code:
Private Function BestandenLezen()
Dim dlgOpen As FileDialog
Dim sPathAndFilename As Variant
Dim sHyperLink As String

    Set dlgOpen = Application.FileDialog(msoFileDialogFilePicker)
    With dlgOpen
        .AllowMultiSelect = True
        .Show
        If .SelectedItems.Count > 0 Then
            With CurrentDb.OpenRecordset("Tabelnaam")
                For Each sPathAndFilename In .SelectedItems
                    .AddNew
                    !KlantID = Me.KlantID
                    !Hyperlink = sPathAndFilename & "#" & sPathAndFilename
                    !DatumUpdate = Now()
                    .Update
                Next sPathAndFilename
                .Close
            End With
        End If
    End With

End Function
 
Hoi,

dit is wat ik moet hebben :love:

alleen krijg ik foutmelding bij het compileren :
.SelectedItems kan de methode of het gegevenslid niet vinden

Dank bij voorbaat
Xtremegamer
 
Het is uiteraard dummy code, want ik heb noch je tabel(lenstructuur) nog je formulier met de onhandige namen. Dus lastig om te checken. Al vermoed ik dat de foutmelding komt door een bibliotheek probleem.
 
Hoi,

wat geknutseld en het vreemde is van wanneer je de database regel introduceerd
.selecteditems ongekend word als variable van opendlg.

enige idee hoe dat zou komen heb windows.forms en Office 14.0 lib al ingevoegd.

Dank bij voorbaat
Xtremegamer
 
Het was niet voor niks dummy code :)
Het probleem wordt veroorzaakt doordat de recordset te vroeg wordt geopend, waardoor de link van SelectedItems naar het verkeerde object kijkt. Dat kun je zo oplossen:
Code:
Private Function BestandenLezen()
Dim dlgOpen As FileDialog
Dim vrtSelectedItem As Variant
Dim sHyperLink As String

    Set dlgOpen = FileDialog(msoFileDialogFilePicker)
    With dlgOpen
        .AllowMultiSelect = True
        If .Show = -1 Then
            If .SelectedItems.Count > 0 Then
                    For Each vrtSelectedItem In .SelectedItems
                        With CurrentDb.OpenRecordset("Tabelnaam")
                            .AddNew
                            !KlantID = Me.KlantID
                            !Hyperlink = sPathAndFilename & "#" & sPathAndFilename
                            !DatumUpdate = Now()
                            .Update
                        .Close
                    End With
                Next vrtSelectedItem
            End If
        End If
    End With

End Function
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan