2011-01-14 16 views
2

javascriptページでtoggletableまたはshowallコマンドを実行しようとしています。私はこれらを印刷目的のために自動的に拡張するようにしたいと思います。ここまで私がこれまで持っていたことがあります。VBAを使用してWebブラウザコントロールでjavascriptコマンドを実行しようとしています

Function PrintWebPage() 
Const OLECMDID_PRINT = 6 
Const OLECMDEXECOPT_PROMPTUSER = 1 
Const OLECMDEXECOPT_DONTPROMPTUSER = 2 

Dim ie As Object 
Dim strWebPage As String, stblAutoNumber(99999) As String, stblBadgeNumber(999999) As String, stblShopNumber(99999) As String 

DoCmd.SetWarnings False 
' Connect to DB 
Set db = CurrentDb() 

' Select Statement for scrolling through everyone 
sqlString = "SELECT tblPersonal.AutoNumber, tblPersonal.[Badge Number], tblPersonal.Shop , tblPersonal.[Last Name] FROM tblPersonal WHERE tblPersonal.[Shop] = " & """" & ShopUserATMS & """" & ";" 

' Sets mRecordset to query the database 
Set mRecordset = db.OpenRecordset(sqlString) 

' Goes to first record of the generated list 
mRecordset.MoveFirst 
Do While Not mRecordset.EOF 
    ' Scroll through personal List 
    stblAutoNumber(i) = mRecordset("AutoNumber") 
    CheckBadgeNull = mRecordset("Badge Number") 
    If IsNull(CheckBadgeNull) = True Then 
     GoTo NoRec: 
    End If 
    stblBadgeNumber(i) = mRecordset("Badge Number") 
    stblShopNumber(i) = mRecordset("Shop") 
    strWebPage = "https://was3.nnsy.navy.mil/atms/components/supervisor/atms_supv_detail.cfm?BADGE=" & stblBadgeNumber(i) 
    DoEvents: DoEvents: DoEvents 
    Set ie = CreateObject("internetexplorer.application") 


    ie.Navigate strWebPage 

    Do Until ie.Busy = False 
     sSleep (1) 
    Loop 
    Call ie.Document.parentWindow.execScript("toggletable(Quals)", "JavaScript") 
    'ie.getelementsbyid("Showall") = True 
    'stblShopNumber(99) = ie.Document.execcommand("toggletable", False, Null) 
    ie.ExecWB OLECMDID_PRINT, OLECMDEXECOPT_DONTPROMPTUSER 

    sSleep (2) 
NoRec: 

Loop 

    ie.Quit 

    Set ie = Nothing 

End Function 

私は、次のコマンドを使用するときにそれは私にアクセス拒否を与える:すべてのヘルプは高く評価され コールie.Document.parentWindow.execScript( "toggletable(QUALS)"、 "JavaScriptを")

を。あなたはインターネットオプションから「マイコンピュータのファイルでのアクティブコンテンツの実行を許可する」オプションを有効にする必要があります... 8時間以上、この1に

+0

あなたはこの問題を解決しましたか? (そして私はあなたの質問に対する答えではないので、DontFretBrettの代替方法については言及していません)。アクセスが拒否された理由が分かった場合は、同じ問題が発生しているので共有してください。 –

答えて

0
Dim IE As New InternetExplorer 
IE.Visible = True 
IE.navigate "http://www.google.com" 
Do: DoEvents: Loop Until IE.readyState = READYSTATE_COMPLETE 
IE.navigate "javascript:alert('hi');" 
+0

あなたは自分の問題に対する答えを持っているでしょうか(提案した回避策を使わずに、回避策を使わずに、彼が質問した質問に対する実際の答え...)?何かあれば、私は知りたいと思っています、ありがとう。 –

+0

私はそれが回避策だとは思わない、私はjavascriptを実行する別の方法を指摘している、おそらくアクセス拒否エラーをスローしません。あなたはアクセスも問題を否定していますか? – DontFretBrett

+0

ええ.execScriptを使用するとアクセスが拒否されていますが、なぜそれが起こっているのかわかりませんか? –

1

を私の頭を打つ - >詳細設定 - >セキュリティ。 IEの設定を無効にする有効にするには0に

Const HKEY_CURRENT_USER = &H80000001  
strComputer = "." 
dwValue = 0 
Set objReg = GetObject("winmgmts:" & "{impersonationLevel=impersonate}\\" & strComputer & "\root\default:StdRegProv") 
strKeyPath = "Software\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_LOCALMACHINE_LOCKDOWN" 
objReg.SetDWORDValue HKEY_CURRENT_USER, strKeyPath,"iexplore.exe",dwValue 

セットdwValue、および1:あなたがプログラムで設定このIEを変更したい場合は は、以下のVBScriptそのためのコードです。

関連する問題