2011-01-14 17 views
2

옆에있는 + 버튼을 클릭 할 때까지 테이블 정보가 숨겨진 javascript 페이지에서 toggletable 또는 showall 명령을 실행하려고합니다. 나는 이것을 인쇄 목적으로 자동 확장하도록하고 싶다. 여기까지 내가 지금까지 가지고있는 것이있다.VBA를 사용하여 웹 브라우저 컨트롤에서 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)", "자바 스크립트") 어떤 도움에 감사드립니다

합니다.

+0

문제가 해결 되었습니까? (그리고 나는 DontFretBrett의 대체 방법에 대해 말하지 않고있다. 당신의 질문에 대한 답이 아니기 때문이다.) 왜 Access Is Denied가 발생했는지 파악하지 못했다면 같은 문제를 겪고 있기 때문에 공유하십시오. –

답변

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

나는 그것을 해결할 방법이 없다고 생각합니다. 자바 스크립트를 실행하는 다른 방법을 지적하고 있습니다. 아마도 액세스 거부 오류를 던지지 않을 것입니다. 액세스 거부 문제가 있습니까? – DontFretBrett

+0

예 .execScript를 사용할 때 액세스가 거부되었습니다. 왜 그런 일이 벌어 지는지 알고 있습니까? –

1

당신은 인터넷 옵션에서 옵션을 "내 컴퓨터]에있는 파일에서 실행하려면 액티브 컨텐트 허용"을 활성화해야합니다 ... 8 시간 이상이 일에 내 머리를 치는 -> 고급 -> 보안. 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 그것을위한 코드입니다.

관련 문제