Record toevoegen aan Meervoudige selectie

Status
Niet open voor verdere reacties.

Masjimo

Gebruiker
Lid geworden
23 dec 2010
Berichten
165
In de voorbeeld database staat in het frmTest een keuzelijst waarin een aantal objecten staan.

Daarnaast staat erin een subformulier met de Documenten die betrekking hebben per Object.

Ik zou een meervoudige selectie in de keuzelijst Objecten willen maken om vervolgens met 1 handeling een Document aan alle geselecteerde Objecten toe te voegen.

Een meervoudige selectie voor de keuzelijst instellen is zo gedaan, maar dan........:o:o

Wie weet de oplossing

Alvast bedankt
Henk

Bekijk bijlage Voorbeeld.mdb.pdf
 
Ik krijg je pdf op geen enkele manier open, dus ik kan er weinig van zeggen nu.
 
Bestandje opslaan; de extensie .pdf eraf halen; daarna is ie prima te openen!

(Komt door de ingestelde firewall geloof ik)
 
Ah, het is geen pdf.... Was handiger geweest als je dat er bij had gezegd :). Dan kun je het bestand beter gewoon zippen, dan kun je hem probleemloos uploaden en zitten wij niet te klooien :). Of de volgende keer een fantasie extensie gebruiken.
 
En nu de vraag: wat moet er precies gebeuren? Ik zie een keuzelijst en een subformulier. Klik je op een object, dan verandert de selectie in het subformulier. Tot zover snap ik 'm nog. Maar dan?
 
Een zip-bestandje komt ook niet door de beveiliging.....


De wens is om de mogelijkheid te hebben meerdere Objecten te selecteren(in de keuzelijst) en dan in 1 handeling een Document aan de geselecteerde Objecten toe te voegen.

Als je de mogelijkheid van meerdere selecties aanzet loopt VBA vast.... (omdat de gebeurtenisprocedure het subformulier updatet en niet ingesteld is op een meervoudige selectie)

Hier zal(naast het herkennen van de meervoudige selectie) op de een of andere wijze middels VBA meerdere records in de tblDOCperOBJ aangemaakt moeten worden middels VBA denk ik.... maar hoe?
 
Laatst bewerkt:
Je herhaalt je vraag nu, wat niet hoeft :). Ik wil weten hóe je aan dat te koppelen document komt. En ik zie geen knop waarmee je de actie nu uitvoert (voor één object). Dus ik weet niet wat de volgende stap moet zijn.
 
Als je meerdere Objecten hebt geselecteerd zou ik een Document willen toevoegen/toewijzen aan die meerdere Objecten.

Dit doe je door;

> Meerdere Objecten te selecteren(dit moet nog aangezet worden)
> In het subformulier bij een nieuwe record met de ActiveX selector een nieuw/ander Document te selecteren.

Als je daarna los van elkaar op een van de eerder geselecteerde Objecten klikt moeten ze daar weer verschijnen...

Zo wel beter omschreven ?
 
Nou, nee :). Want wat zie je dan nu in die lijst? Als je een object aanklikt, zie je (neem ik aan) de reeds gekoppelde documenten. Ik zie nergens een lijst met te koppelen documenten. Dus waar haal je die dan vandaan? Daarnaast zie ik veel meer problemen. Nu filter je de lijst met rs.FindFirst "[Id OBJ] = " & Str(Me![Keuzelijst0]). Dat is onmogelijk als je de keuzelijst instelt op meerdere waarden (via <Eigenschappen> tabblad <Opties>, het maakt niet uit of je Enkelvoudig of Uitgebreid gebruikt). Bij een meervoudige selectie is het principaal onmogelijk dat ze allemaal het eerstgevonden record kunnen zijn; dat kan er namelijk maar één zijn. Nu werkt dat dus prima.
Daarnaast moet je een meervoudige keuzelijst uitlezen met de eigenschap SelectedItems, en niet, zoals je nu doet, met Value. Dus je zult een hele andere techniek moeten gaan gebruiken.

Maar vooral de manier waarop je je proces hebt ingericht drukt nu als een Schwarzwalder Kirsch taart op de, met een paar kilo pepernoten gevulde, maag :).
 
Dat was precies de vraag: hoe krijg je dat effect dus wel voor elkaar in VBA!

Ik snap wel dat wat er stond alleen voor 1 selectie werkte; alleen hoe ik dat moet transformeren tot iets dat wel werkt met een meervoudige selectie; weet ik niet....

Vandaar de vraag; wie kan mij een voorbeeldje maken in deze voorbeeld.mdb?:shocked::confused:
 
Nou, dan moet ik dus eerst antwoord hebben op de andere vragen :). Ik heb wel de code voor je waarmee je een keuzelijst kan uitlezen.
Code:
Sub test()
Dim dlgPicker As FileDialog
    Set dlgPicker = Application.FileDialog(msoFileDialogFilePicker)
    With dlgPicker
        .Title = "Selecteer een bestand." 'De titel voor het venster
        '**************************************************************************
        'Pas dit aan voor map met afbeeldingen
        '**************************************************************************
        .InitialFileName = CurrentProject.Path      'Waar moet het venster beginnen?
        .Filters.Clear
        'Add a filter that includes GIF and JPEG images and make it the second item in the list.
        For i = LBound(sType) To UBound(sType)
            Select Case sType(i)
                Case "Microsoft Word"
                    dlgPicker.Filters.Add "Microsoft Word", "*.doc; *.dot", i + 1       'Beperk de bestandstypes tot .doc
                Case "Microsoft Excel"
                    dlgPicker.Filters.Add "Microsoft Excel", "*.xls; *.xlt", i + 1      'Beperk de bestandstypes tot .xls
                Case "Microsoft PowerPoint"
                    dlgPicker.Filters.Add "Microsoft PowerPoint", "*.ppt; *.pot", i + 1 'Beperk de bestandstypes tot .pdfppt
                Case "Microsoft Access"
                    dlgPicker.Filters.Add "Microsoft Access", "*.mdb; *.mde", i + 1     'Beperk de bestandstypes tot .mdb
                Case "Adobe Reader"
                    dlgPicker.Filters.Add "Adobe Reader", "*.pdf", i + 1                'Beperk de bestandstypes tot .pdf"
                Case "Afbeeldingen"
                    dlgPicker.Filters.Add "Afbeeldingen", "*.png; *.jpg; *.jpeg", i + 1 'Beperk de bestandstypes tot .jpg"
                Case "Songs"
                    dlgPicker.Filters.Add "Songs", "*.mp3; *.wav", i + 1                'Beperk de bestandstypes tot .mp3 en wav"
                Case "Alles"
                    dlgPicker.Filters.Add "Alles", "*.*", i + 1                         'Geen Beperkingen op bestandstype"
                Case Else
            End Select
        Next i
        .FilterIndex = 1
        .AllowMultiSelect = True                   'Slechts ??n bestand kiezen toegestaan
        .InitialView = msoFileDialogViewList        'Bepaal weergave
        If .Show = -1 Then                          'Bepaal of gebruiker op OK-knop heeft geklikt.
[B][COLOR="#FF0000"]            For Each vrtSelectedItem In .SelectedItems
                strFile = strFile & vrtSelectedItem & ";"
                ''strFile = .SelectedItems.Item(1)    'String wordt gevuld met geselecteerde bestand
            Next
[/COLOR][/B]        Else
            MsgBox "Er is op <Cancel> gedrukt..."
        End If
    End With
Dit is weliswaar een voorbeeldje voor een FilePicker, maar het idee is hetzelfde: kies meerdere opties uit een lijst, en zet die in een string. Want dat is dus wat je in eerste instantie denk ik moet doen.
Ben benieuwd of je wat kan hiermee, of dat we het inderdaad voor je moeten bouwen :).
En geef vooral antwoord op mijn andere vragen, want die zijn wel een beetje essentieel...
 
En om je een beetje op weg te helpen: hier de code waarmee je de keuzelijst kunt uitlezen. Mits die op Enkelvoudig staat.
Code:
Dim vrt As Variant
Dim str As String
    For Each vrt In Me.Keuzelijst0.ItemsSelected
        If Not str = "" Then str = str & ", "
        str = str & Me.Keuzelijst0.ItemData(vrt)
    Next vrt
    MsgBox str
 
Bedankt voor de tips; ik ga er mee aan de slag!

Wordt vervolgd!
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan