Почему мой ComboBox показывает только первый результат?

У меня есть две подлые гипотезы на этом

КОНЕКЦИЯ № 1

Посмотрите на возможность не иметь доступа к файлу /tmp/mysql.sock. Когда я устанавливаю базы данных MySQL, я обычно разрешаю сайт файла сокета в /var/lib/mysql. Если вы входите в mysql как root@localhost, ваш сеанс ОС должен получить доступ к папке /tmp. Убедитесь, что /tmp имеет правильные права доступа в ОС. Кроме того, убедитесь, что пользователь sudo всегда может читать файл в /tmp.

CONJECTURE # 2

Доступ к mysql через 127.0.0.1 может вызвать некоторую путаницу, если вы не обращаете внимания. Как?

Из командной строки, если вы подключаетесь к MySQL с 127.0.0.1, вам может потребоваться указать протокол TCP / IP.

mysql -uroot -p -h127.0.0.1 --protocol=tcp

или попробуйте DNS-имя

mysql -uroot -p -hDNSNAME

Это приведет к обходу входа в систему как root@localhost, но убедитесь, что у вас установлен root@'127.0.0.1'.

При следующем подключении к MySQL запустите это:

SELECT USER(),CURRENT_USER();

Что это дает вам?

  • USER () сообщает, как вы пытались выполнить аутентификацию в MySQL
  • CURRENT_USER () сообщает, как вам было разрешено пройти аутентификацию в MySQL

Если эти функции возвращаются с одинаковыми значениями, то вы подключаетесь и проверяете подлинность, как ожидалось. Если значения разные, вам может потребоваться создать соответствующего пользователя root@127.0.0.1.

0
задан Rawrplus 9 March 2019 в 18:03
поделиться

1 ответ

RowSource сделан для столбцовидного диапазона : если вы назначите ему строковый диапазон , вы получите только первую ячейку

Но Вы можете использовать свойство List объекта ComboBox и заполнить его полученными значениями, переставляя строковый диапазон из :

Private Sub UserForm_Activate()
    Dim res As String
    Dim cell As Range: Set cell = Sheets("Pomocne").Range("B2")
    Dim endcell As Range
    Do Until IsEmpty(cell)
        Set endcell = cell
        Set cell = cell.Offset(0, 1)
    Loop

    res = "Pomocne!B2:" & Replace(endcell.Address, "$", "")
    obor_combo.List = Application.Transpose(Range(res).Value)    
End Sub

, который можно упростить до: [1110 ]

Private Sub UserForm_Activate()    
    With Sheets("Pomocne")
        obor_combo.List = Application.Transpose(.Range("B2", .Cells(2, .Columns.Count).End(xlToLeft)).Value)
    End With
End Sub
0
ответ дан DisplayName 9 March 2019 в 18:03
поделиться
Другие вопросы по тегам:

Похожие вопросы: