Он делает это, потому что input.nextInt();
не фиксирует новую строку. вы могли бы сделать, как и другие, добавив под ним input.nextLine();
. В качестве альтернативы вы можете сделать это в стиле C # и разобрать nextLine на целое число так:
int number = Integer.parseInt(input.nextLine());
Выполнение этого работает так же хорошо, и оно сохраняет строку кода.
Вам нужно создать функцию VBA, которая возвращает имя пользователя, а затем использовать функцию в запросе.
Public Function GetUserName() As String
' GetUserName = Environ("USERNAME")
' Better method, see comment by HansUp
GetUserName = CreateObject("WScript.Network").UserName
End Function
и
SELECT foo FROM bar WHERE myUserName = GetUserName();
Вы можете использовать SYSTEM_USER, если запрос выполняется на SQL Server, который будет извлекать имя пользователя, подключенное к базе данных (для этого убедитесь, что вы не используете фиксированное имя пользователя в строке соединения)
Да - вы можете использовать функцию «CurrentUser» в вашем запросе. Здесь я включил его как поле и критерии.
SELECT Field1, Field2, [CurrentUser] AS UserName FROM Table1 WHERE Field1 = [CurrentUser];