2012-08-27 17 views
5

私は、ユーザーがWindowsドメインユーザーとパスワードを入力して入力するように要求するアクセスアプリケーションを持っています。私はこれを達成するために、次のVBAコードを使用しています:情報が正しく入力されるとアクセスが拒否されることがあります。私は一度デバッグしようとしましたが、それはSet oADsObject = oADsNamespace.OpenDSObject)行の "ネットワークパスが見つかりませんでした。 "というエラーを出しました。VBA:Windows認証を使用したログイン

なぜこのようなことが発生するのかよくわかりません。代わりにLDAPに変換する方が良いですか?私は試しましたが、LDAP URLを正しく構築できません。

+1

私はあなたの質問に答える方法はわかりませんが、パスワードが ""でも有効なstrUserNameとstrDomainを渡す限り、あなたの関数でTRUEを取得したように見えます。 –

+0

ヒットまたはミス。奇妙な行動。 – Rick

+0

'option compare database'の代わりに' option compare binary'を使用してしまいました。 'option compare database'は、あなたに良いコントロールを与えていません。 –

答えて

3

ユーザーが既にWindowsログインで認証されている場合、再度詳細を入力するのはなぜですか?

あなたがログインしているユーザーを知る必要がある場合は、以下の機能により、非常に簡単にユーザー名を取得することができます:のGxP環境で

 
Declare Function IGetUserName Lib "advapi32.dll" Alias "GetUserNameA" (ByVal sBuffer As String, lSize As Long) As Long 

Function GetUserName() As String 

    On Error Resume Next 

    Dim sBuffer As String 
    Dim lSize As Long 
    Dim x As Long 

    sBuffer = Space$(32) 
    lSize = Len(sBuffer) 
    x = IGetUserName(sBuffer, lSize) 
    GetUserName = left$(sBuffer, lSize - 1) 

End Function 

+0

+1このようなアプローチを共有していただきありがとうございます。 –

0

は、さらに、少なくともパスワードを入力する必要があります。 Windowsにログオンしているかどうかは関係ありません。もう一度確認する必要があります。

関連する問題