vba - записать текст в sfile путь не работает ошибка - PullRequest
0 голосов
/ 10 мая 2019

С помощью пользовательских форм и текстовых полей я могу добавить новый персонал в мой файл персонала, но в моем коде что-то не так, и код не работает. Я получаю ошибку при ее выполнении. В сообщении об ошибке «Ошибка компиляции: метод или элемент данных не найден». Я не знаю, что не так с моим кодом, я ожидаю, что я заполнил некоторые текстовые поля, и я хочу, чтобы они были добавлены в уже существующий файл seq (Блокнот). Но это не позволяет мне сделать это, и я не знаю почему.

Я был бы рад, если бы кто-то смог найти проблему и дать решение. Заранее спасибо. Если вам нужен код из других командных кнопок, пользовательских форм и т. Д. Пожалуйста, скажите мне ... Я не знаю полностью, что сейчас публиковать.

Я уже пытался изменить имена Userform_Nieuw, но безрезультатно.

Private Sub seq_bestand_maak_databank()

Dim diploma As String
Dim pad As String

pad = "C:\Users\fhaka\Downloads\Overzicht_Personeelsleden.txt"

If UserForm_Nieuw.OptionButton1.Value = True Then
    diploma = "Secundair"
ElseIf UserForm_Nieuw.OptionButton2.Value = True Then
    diploma = "Bachelor"
ElseIf UserForm_Nieuw.OptionButton3.Value = True Then
    diploma = "Master"
End If

If CInt(nieuw.Label1.Caption) = 1 Then
    Open pad For Output As #1
Else
    Open pad For Append As #1
End If

Write #1, CInt(UserForm_Nieuw.Label1.Caption), UserForm_Nieuw.Voornaam, UserForm_Nieuw.Naam, CInt(UserForm_Nieuw.Aantal_kinderen), UserForm_Nieuw.Geboortedatum, UserForm_Nieuw.Startdatum, "---N/A---", diploma, "0", "---N/A---", "---N/A---", "EOR"
Close #1

End Sub

Цель состоит в том, чтобы командная кнопка снова заработала, и теперь я могу добавить больше персонала.

Ответы [ 2 ]

0 голосов
/ 10 мая 2019

Часть #1 в Open pad For Output As #1 и т. Д. Является дескриптором файла. Чтобы получить дескриптор файла, вам нужно позвонить FreeFile . Вы не можете просто предполагать, что дескриптор файла # 1 всегда доступен.

Попробуйте это:

Dim iOutputFile As Integer
iOutputFile = FreeFile

If CInt(nieuw.Label1.Caption) = 1 Then
    Open pad For Output As #iOutputFile
Else
    Open pad For Append As #iOutputFile
End If

Write #iOutputFile, CInt(UserForm_Nieuw.Label1.Caption), UserForm_Nieuw.Voornaam, UserForm_Nieuw.Naam, CInt(UserForm_Nieuw.Aantal_kinderen), UserForm_Nieuw.Geboortedatum, UserForm_Nieuw.Startdatum, "---N/A---", diploma, "0", "---N/A---", "---N/A---", "EOR"
Close #iOutputFile
0 голосов
/ 10 мая 2019

Похоже, вы не определили метод пользовательской формы.Вы не смогли скомпилировать, и выделение находится на UserForm_Nieuw.Voornaam.Итак, я понимаю, что это какое-то поле ввода для имени?Проверьте, действительно ли он называется так или нет старого имени по умолчанию (что-то вроде «Textbox275» или что-то вроде ваших других элементов, например OptionButton1 и 2).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...