Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Problem z wydajnością na dynamicznej liście rozwijanej wyszukiwania w programie Excel

Nie znam się na wydajności, ale wypróbuj następujące rzeczy. Twoje dane powinny znajdować się w arkuszu „db”, począwszy od wiersza 2. Zamiast combobox, umieszczam pole tekstowe (TextBox1 ) i listę (ListBox1 ) w formularzu użytkownika.

Private Sub TextBox1_Change()
    Dim v As String
    Dim YourInput As String
    Dim iIdx As Long
    Dim CharNumber As Integer

    YourInput = TextBox1.Text

    Application.ScreenUpdating = False
    Application.Calculation = xlCalculationManual
    Application.EnableEvents = False

    ListBox1.Clear

    lLastRow = Worksheets("db").Cells(3, 1).End(xlDown).Row
    CharNumber = Len(YourInput)

    For iIdx = 2 To lLastRow
        v = Worksheets("db").Cells(iIdx, 1).Text
        If LCase(Left(v, CharNumber)) = LCase(YourInput) Then
            ListBox1.AddItem v
        End If
    Next

    Application.ScreenUpdating = True
    Application.Calculation = xlCalculationAutomatic
    Application.EnableEvents = True
End Sub

Private Sub ListBox1_Click()
    MsgBox ("Your selection: " & ListBox1.Text)
    'do your stuff
End Sub


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Wskazówki dotyczące naprawiania fragmentacji indeksu SQL Server

  2. Podciąg T-SQL - oddzielający imię i nazwisko

  3. Dlaczego precyzja maleje, gdy mnożymy sumę do innej liczby

  4. ms-access:jak wykonać prawidłowe zapytanie?

  5. Jak zaszyfrować wszystkie istniejące procedury przechowywane w bazie danych?