toevoeg query na formulie filter

Status
Niet open voor verdere reacties.

perco

Gebruiker
Lid geworden
2 mei 2012
Berichten
49
ik krijg het volgende maar niet opgelost
Bekijk bijlage test.zip
als ik wat records filter in het formulier , wil ik de gefilterde records met een toevoeg query toevoegen aan een andere tabel
maar ik krijg slechts het eerste record toegevoegd

is hier voor een oplossing ?
 
Wat wil je precies doen? Je toevoegquery doet precies wat je vraagt: één record toevoegen. Dat komt omdat je deze waarde Expr1: [Formulieren]![Tabel1]![nummer] toevoegt aan het veld [nummer] in tabel2. Je staat dus in je formulier op één record, en dat wordt dan toegevoegd. Wil je meer records toevoegen, dan moet je een echte query maken die je onder een knop hangt. En met een filter, komt er dus een WHERE bij. Dus iets als:
INSERT INTO Tabel2 ([nummer]) (SELECT [nummer] FROM Tabel1 WHERE Nummer Between 3 AND 6)
 
wat ik wil is dus alle records die over blijven na filtering in één keer toevoegen aan de tabel 2
ik had expr1 met de wizard opbouwen gedaan
kun je me nog wat verder helpen met de code onder knop ?
 
Dat is een beetje lastig, omdat je voorbeeld niet compleet is. Want hoe filter je bijvoorbeeld de records die je wilt hebben?
 
ik had gehoopt door boven in het formulier te kiezen
WP_000158.jpg
 
Je hebt er voor gekozen om een formulier in Tabelweergave te maken. Zelf ben ik daar absoluut geen liefhebber van, want je kunt ineens bitter weinig regelen in het formulier, en dat is nu net het mooie van formulieren: dat je zoveel zelf kunt bouwen. Zo kun je geen Toevoegknop maken bijvoorbeeld. En die heb je nodig. Nu kun je alleen een routine maken bij het sluiten van het formulier, die de geselecteerde records toevoegt. Die ziet er dan zo uit:

Code:
Private Sub Form_Close()
Dim iRes As Variant
Dim strSQL As String, sFilter As String

    sFilter = Me.Filter
    If sFilter & "" <> "" Then
        iRes = MsgBox("Wil je deze records toevoegen?", vbYesNo + vbDefaultButton1)
        If iRes = vbYes Then
            strSQL = "INSERT INTO Tabel2 ([nummer]) SELECT [nummer] FROM Tabel1 WHERE " & sFilter
            CurrentDb.Execute strSQL
        End If
    End If
End Sub

Deze werkwijze heeft wel een paar nadelen: je krijgt altijd de vraag of je wilt toevoegen, en er is geen check op het invoeren van een dubbele selectie. Al kun je die nog wel wegfilteren uit het formulier, door de toegevoegde records niet in Tabel1 te laten zien.
 
ik heb de code verwerkt en werkt precies zoals je aangeeft
Bekijk bijlage test1.zip

je geeft aan dat een formulier in tabelvorm niet de ideaal is maar hoe zou ik het kunnen maken en toch op alle velden kan filteren
het knopje zou inderdaad fraaier zijn
 
Een doorlopend formulier heeft dezeldfe eigenschappen als een formulier in tabelweergave (meerdere records laten zien) maar dan met alle eigenschappen van een formulier. Ik gebruik de tabelweergave daarom nooit; je kunt het formulier zo mooi maken als je wilt (en dat is al heel snel een stuk fraaier als die lelijke tabelweergave) en je hebt knoppen. Je kunt het doorlopend formulier zelfs net zo lelijk maken als de tabelweergave. Wat wil je nog meer :)
 
Michel

ik dacht er te zijn en dat ik de rest zou kunnen afleiden uit jou code , maar niets is minder waar
in het nieuwe voorbeeld is het wat duidelijker
Bekijk bijlage test2.zip

ik kies bijvoorbeeld een land , waarna ik een selectie maak die ik toevoeg
bij afsluiten wordt dan de selectie toegevoegd en dat werkte al , maar nu wil ik ook het land id er bij in tabel2
dit krijg ik niet gemaakt

overigens heb ik wat gestoeid met je voorstel van het doorlopend formulier maar dat krijg ik ook niet goed
 
Ik snap het niet; in de tabel heb je een veld [ID], en een tekstveld [Land]. In Tabel2 voeg je nu het veld [ID] toe aan het veld [Nummer]. Waar moet het veld [Land ID] dan komen? En, belangrijkere vraag: waar komt dat nummer vandaan, als het niet het veld [ID] is? Je wilt toch niet twee keer hetzelfde nummer toevoegen?
 
ik heb een aantal landen en die hebben een ID
vervolgens maak en selectie met tabel1 , deze selectie hebben ook elk hun eigen id

deze id's moeten dan worden opgeslagen in tabel2 waarme ik deze relatie vastleg


ik hoop dat dit wat duidelijker is
 
Niet echt; ik zie geen relatie tussen Tabel1 en Landen.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan