oiskos kenelläkään tietoa kuinka saadaan lisättyä mscomm32 VBa:han??
latasin mscomm32.ocx:n windows/syswow64 hakemistoon. sitten avasin cmd:n järjestelmänvalvojana ja kirjoitin seuraavat tekstit sinne.
cd..
cd syswow64
regsvr mscomm32.ocx
tämän jälkeen tuli ilmoitus että rekisteröinti onnistunut. nyt kun yritän liittää formille tämän mscomm jutun niin tule herja "Kohde ei ole luotettu määritetyn toiminnon suorittamiseen".
Hei laita Project-valikosta Add Reference ja valitse Browse, selaa sinne
C:\windows\syswow64\ ja valitse mscomm32.ocx ja paina OK. Sitten tee lauseke
Imports mscomm32
. Kerro toimiiko.
compile error sub or funktion not defined.
tulee siinä vaiheessa kun klikkaa formia.
Private Sub UserForm_Click() Imports mscomm32 End Sub
tools/references valikosta laitoin ruksin mscomm32.ocx:n päälle.
Moi taas Arto!
1. Näin tarkistat VBA-ympäristössä, että mscomm32.ocx ActiveX komponentti on rekisteröity oikein!
Private MyComm Private Sub UserForm_Activate() Set MyComm = CreateObject("MsCommLib.MsComm") If Not MyComm Is Nothing Then MsgBox "Jee!" 'Jos tämän jälkeen tökkii niin lisenssi ei ole kunnossa! '... Set MyComm = Nothing End If End Sub
2. Koska täältä löytyvä API toimi moitteetta 32 bittisessä XP:ssä mutta tökii 64 -bittisessä Windows 7:si niin on mitä todennäköisintä, että myös mscomm32.ocx tökii koska ko. ActiveX controlli käyttää tasan tarkaan hyväkseen samaista em. API'a (kernel32)! Tökkiminen johtuu siitä, että osoittimet (pointers) on laajennettu 64-bittisiksi
no nyt männöö jo oovoks...
tämä ohjelman pätkä kertoo että "jee!" mutta jos yritän tuosta komponentti valikosta vetää sen tuohon formille niin tulee herja. "kohde ei ole luotettu määritetyn toiminnon suorittamiseen." mutta siis luoko tuo toiminto sen tuohon ohjelmaan eli voinko antaa sille tuon jälkeen komentoja??
testaan... =)
jaa jäipäs tuo kohta 2. lukematta. no se voi tietysti olla näinkin. onkohan olemassakaan mitään "mscomm64" juttua(freewarena). joku löyty netistä mutta maksaa 150$ ei ktos..
Moi taas Arto!
Väänsin .NET Framework (4.0) System.IO.Ports luokasta VBACommPort 64-bit Wrapperin, jota voit halutessasi testata...viritelmä on impattavissa täältä
oho...
juups eli tuossa vaiheessa kun yritän avata tuon objectbrowserin niin tulee ilmoitus excel lakkasi toimimasta.
onks toi homman rekisteröinti nyt sillä selvä kun painan tuota registerVBAcommnettypelib.bat tiedostoo?? ja onko noilla väliä mihin kansioon tallentaa tuon vbacommnet64.tlb ja dll tiedostot?? mun käsittääkseni just se ohjaustapaaneeliin/ympäristömuuttijiin lisättävät hakemisto polku pitäs auttaa tähän.
ajattelin vaan tätä syswow64 kansioo jossa yleensä nämä dll ja ocx tiedostot on...
tulipahan vaan ihan ohimennen mieleen....
että kuinkas tää käyttäytyy kun office 2010 on 32 bit versio... pitäskö vaihtaa 64 bittiseen??
Moi taas Arto!
Unohda VBACommNET.dll & vbacommnet64.tlb. Elikä jos sait rekisteröityä niin poista rekisteröinnit ja deletoi filut syystä, että vbacommnet64.tlb tyypikirjasto ei tue 32-bittistä automaatiota.
no toimiikos se jos isken 64 bittisen officen tähän koneeseen?
Moi taas Arto!
Lataa täältä GRMSDKX_EN_DVD.iso, pura paketti ja asenna (kaikki) koneellesi. Etsi sitten kansiot ..\Microsoft SDKs\Windows\v7.1\Bin\NETFX 4.0 Tools & ..\Microsoft.NET\Framework\v4.0.30319 ja lisää Windowsin (ohjaustapaaneeliin/ympäristömuuttujiin) ympäristömuuttujan Path rimpsun perään polut (koko polku) ko. kansioihin. Ilmoittele niin neuvotellaan sitten lisää...
joops!
asensin koneelle 64 bittisen officen. nyt sain auki sen objectbrowserin ja sieltä sen vbacommnet:in. toimiiko nealla sun ilmoittamasi @posti??
huomenta taasen...
nyt on netframen toolboxi tai joku semmonen asennettuna ja vbacommnet poistettu =)
Moi taas Arto!
Toimiiko..?
Heippa taas!
Mikäli jotakuta vielä kiinnostaa .NET 4.0 sarjaporttiviritelmät 32-bittisessä Windowsissa/Excelissä niin täältä voi impata wrapperin asennusohjeineen sekä testiohjelman (Excel 2003).
ei toimi ei... kohta puoliin alan taasen asentaa 32 bittistä vai onko vinkkejä kuinka 64 saa toimimaan
Moi taas Arto!
Mikäli 64-bittinen Office on vielä koneellasi ja asensit Microsoft Windows SDK for Windows 7 and .NET Framework 4 (GRMSDKX_EN_DVD.iso) paketin niin testaa vielä tämä
nyt herjaa että cacuutil puuttuu koneelta. mutta sehän oli jossain näistä ed viesteissä. etsin sen... ja kun cacutil löytyy niin nyt puuttuu tämmönen filu...
C:\Windows\Microsoft.NET\Framework64\v4.0.30319\
ja sitten vielä se hauskempi juttu. tuo tiedosto RegAsm.exe löytyy juuri tuolta mistä tuo polku näyttää.
Moi taas Arto!
Lataa uudestaan päivitetty NetComm64Test.zip paketti, yritä asennusta ja anna palautetta
nii nyt toimii siihen asti kun avaan tuon exel testi ohjelman
värjää tän rivin siniseks ja herjaa. "Can't find project or library"
Dim MyComm As NetComm64.CommClass
juu sitten tuolla References valikossa lukee tämmönen rivi:
MISSING: .NET 64 Com port communication 4.0 for VBA
ja ruksi on tän rivin edessä olevassa laatikossa.
Moi taas Arto!
mene takas sinne VBA-editorin References valikkoon, klikkaa Browse, etsi \Windows\System32 hakemistosta NetComm64.tlb ja tuplaklikkaa kuvaketta...jos ei löydy niin etsi \windows\syswow64 -hakemistosta...
joo katos ku ei mulla löyry koko koneelta tommosta .tlb tiedostoo... NetComm64.dll löytyy
Moi taas Arto!
Kokeile vielä kerran elikä lataa taas päivitetty .zip paketti edellisestä linkistä, pura ja asenna uudestaan...jos ei sitten toimi niin ei sitten toimi, minulla kyllä toimii...
Edit: kun olet ladannut paketin ja purkanut sen niin avaa komentokehte, siirry kansioon, johon purit matskun, ja suorita Install_NetComm64_dll.bat komentokehotteesa niin näet missä mahdollisesti tökkii jos tökkii...
joo ei...
voisik sää tai joku laittaa ton netcomm64.tbl tiedoston laittaa johkin imuroitaviks?? sitä se nyt herjaa...
Moi taas Arto!
1. Ei ole mitään hyötyä latailla NetComm64.tlb filua, koska asennusohjelman pitäisi (regasm.exe) luoda ko. tyyppikirjasto samassa yhteydessä, kun NetComm64.dll assembly on rekisteröity GAC:een (Global Assembly Cache) ja assemblyn tyypit on rekisteröity windowsin rekisteriin.
2. Pura edellinen asennus ja deletoi filut + lataamasi .zip paketit!
3. Lataa tämä ja suorita asennus uudestaan.
juu... sama juttu missing: .net......
tuota tuota... testailin tässä VB6 prof versiota. siinä sain toimimaan mscomm:in
kuinkas saan luettua ja tallennettua tietoo vb6:lla exel taulukkoon??
Moi taas arto!
lataa nyt täältä vielä kokeeks set .tlb filu.
no nii taas päästiin pari riviä pitemmälle. =)
Private Sub UserForm_Activate() Static IsInitialized As Boolean If Not IsInitialized Then DoEvents Set MyComm = New NetComm64.CommClass cboRates.List = MyComm.Rates cboPorts.List = MyComm.Ports If cboRates.ListCount > 0 Then cboRates.ListIndex = 0 tagRate = 0 End If If cboPorts.ListCount > 0 Then cboPorts.ListIndex = 0 tagPort = 0 End If IsInitialized = True End If End Sub
toi
Set MyComm = New NetComm64.CommClass
rivi antaa virheen "active X component can't create object."
Moi taas Arto!
avaa windowsin komentokehote ja suorita komennot:
CD C:\WINDOWS\System32
"C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin\NETFX 4.0 Tools\x64\gacutil.exe" /i NetComm64.dll
"C:\WINDOWS\Microsoft.NET\Framework64\v4.0.
ja kokeile mitä tapahtuu & ilmoittele mitä tapahtui...
Moi taas Arto!
Toho VB6 jutskaan:
Ensin lataat ja asentelet seuraavat kapulat:
Service Pack 6 for Visual Basic 6.0
Microsoft Access Database Engine 2010 Redistributable
ja sitten VB6:ssa klikkaa Project->Refernces ja etsi listalta Microsoft Excel xx.0 Object Library (xx = versiosi numero).
Private xlApp As Excel.Application Private xlBook As Excel.Workbook Private xlSheet As Excel.Worksheet Private Sub Form_Load() Set xlApp = New Excel.Application xlApp.Visible = True Dim wkName As String wkName = Environ("userprofile") & "\Työpöytä\ComportTest.xls" If Dir(wkName) <> "" Then xlApp.Workbooks.Open (wkName) Set xlBook = xlApp.Workbooks("ComportTest.xls") Else xlApp.Workbooks.Add Set xlBook = xlApp.Workbooks(1) xlBook.SaveAs wkName xlBook.Worksheets.Add End If If Not xlBook Is Nothing Then Set xlSheet = xlBook.Worksheets("Taul1") xlSheet.Visible = xlSheetVisible End If End Sub Private Sub Command1_Click() 'testi... If Not xlSheet Is Nothing Then xlSheet.Cells(1, 1).Value = "Moro1" xlBook.Save End If End Sub Private Sub Form_Unload(Cancel As Integer) On Error Resume Next Set xlSheet = Nothing xlBook.Close Set xlBook = Nothing xlBook.Application.DisplayAlerts = False xlApp.Quit Set xlApp = Nothing End Sub
"C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin\NETFX 4.0 Tools\x64\gacutil.exe" /i NetComm64.dll
määritettyä tiedostoa ei löydy...
Aihe on jo aika vanha, joten et voi enää vastata siihen.