Teknologi, AI og forretning er i centrum på Computerworlds Cloud og AI Festival i København d. 18. og 19. september. Se hele programmet for den store konference om strategisk brug af Cloud og AI på: www.cloud-festival.dk
Det eneste brugeren aktiverer er listboxen vha. dobbeltklik på een af posterne heri ... herefter indsættes en værdi i et andet felt, og det er dette andet felt, som afhængig af indhold skal aktivere en stump modulkode.
Tak for det, jeg ved ikke helt hvad jeg vil med den, men det er fint at have et sted at henvise til, hvis folk høre, hvad det er for noget man laver :-)
Fandt problemet .. manglede en Tag - markering i feltet ... så nu virker det ... næsten ...
Min programkode aktiveres nu som forventet ved dobbeliklik i listboxen, eksempelvis en nummerisk værdi 002, men programkoden som er en søgefunktion, returnerer posten umiddelbart før, altså nr 001 ????
Selve koden der aktiveres( Thomas Jepsen - Dynamisk søgestreng ) fungerer upåklageligt hvis jeg eksempelvis opretter er tekstfelt og indtaster direkte heri / aktiverer hans kode i AfterUpdate(), men ikke hvis jeg vælger den samme værdi i en listbox ... her vælger den at returnere den forrige post
hvor er de poster der returneres - er det et tabeludtræk fundet med SQL? må jeg se din SQL? tager du et ID fra listboxen og bruger det i SQLen? Det lyder mystisk med den forrige post. Bruger du noget med Me.listbox.column(x,y)?
SELECT [StmData-001].ID, [StmData-001].Absence, [StmData-001].[Abbreviation A], [StmData-001]!Absence & " (" & [StmData-001]![Abbreviation A] & ")" AS [View] FROM [StmData-001] ORDER BY [StmData-001].ID;
Bound Column = 0
Hvor jeg før benyttede
Private Sub ListID_DblClick(Cancel As Integer)
Me.søgID.Value = ListID.Column(0)
End Sub
som korrekt returnerede værdien fra min listbox, men hvor jeg ikke efterfølgende kunne benytte AfterUpdate i forbindelse med søgID, så har jeg nu valgt at benytte min listbox ( omdøbt til søgID ) ... fortsat med Bound Column = 0, så reagerer søgefunktionen, men altså ved at fremfinde posten før.
Thomas kode er her :
Public Function GetFilter() As String
Dim SQLStr As String Dim ctrl As Control
For Each ctrl In Screen.ActiveForm Select Case ctrl.Tag Case "Tekst" If ctrl <> "" Then SQLStr = SQLStr & "[" & Mid(ctrl.Name, 4) & "] = '" & ctrl & "' And " End If Case "Fritekst" If ctrl <> "" Then SQLStr = SQLStr & "[" & Mid(ctrl.Name, 4) & "] Like '*" & Replace(ctrl, "'", "?") & "*' And " End If Case "Tal" If ctrl <> "" Or Not IsNull(ctrl) Then SQLStr = SQLStr & "[" & Mid(ctrl.Name, 4) & "] = " & ctrl & " And " End If Case "Dato" If ctrl <> "" Or Not IsNull(ctrl) Then SQLStr = SQLStr & "[" & Mid(ctrl.Name, 4) & "] = #" & Format(ctrl, "yyyy-mm-dd") & "# And " End If End Select Next ctrl If SQLStr <> "" Then SQLStr = Left(SQLStr, Len(SQLStr) - 5) End If GetFilter = SQLStr End Function
Public Function AktiverFilter(F As Form)
Dim SQLStr As String SQLStr = GetFilter If Len(SQLStr) = 0 Then F.FilterOn = False Else F.Filter = SQLStr F.FilterOn = True End If End Function
Det er AktiverFilter() der skal afvikles i forbindelse med AfterUpdate
Jeg er ikke helt sikker på at Jepsens kode altid virker i alle sammenhænge men denne linje
Case "Tal" If ctrl <> "" Or Not IsNull(ctrl) Then SQLStr = SQLStr & "[" & Mid(ctrl.Name, 4) & "] = " & ctrl & " And "
i koden finder indexværdien for den linje, der klikkes på. Dvs. når man klikkerp å nr. 1 finder den tallet 0. Når man klikker på 5 finder den 4. Altså numrene på rækkerne med start ved tallet 0.
Det forvirrer ekstra fordi din ID-kolonne netop hedder 001, 002, 003 osv. men hvis det kom i en anden rækkefølge eller hede 55,645,6734 ville du stadig får 0,1,2 når man klikker på rækkerne.
Så jeg har rettet ovenstående linje til: Case "Tal" If ctrl <> "" Or Not IsNull(ctrl) Then SQLStr = SQLStr & "[" & Mid(ctrl.Name, 4) & "] = " & ctrl.Column(0, ctrl) & " And "
og så virker det. Derved filtrerer den efter ID-kolonnen og ikke et det valgte index i listboxen. Jeg har sendt db´en den til dig.
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.