Outputformat foutmelding bij export rapporten in Snapshot formaat

Status
Niet open voor verdere reacties.

Oblivianx

Gebruiker
Lid geworden
9 mei 2006
Berichten
16
Beste Forumleden,

Ik heb een applicatie ontworpen die op verschillende Office versies draait.
Ik krijg de volgende foutmelding als de rapporten (via VBA) geexporteerd worden naar het .snp formaat:

"De indeling waarin u het huidige object probeert uit te voeren is niet beschikbaar"

Het probleem ligt met name aan de verschillende taalversies van office zelf.
Ik heb in iedergeval wel kunnen achterhalen dat de NL offcie versie goed werkt met de code:

DoCmd.SendObject objecttype:=acSendReport, _
ObjectName:=strDocName, outputformat:="Momentopname-indeling (*.snp)", _
To:=strRecipient, Subject:=strSubject, MessageText:=varBody

En de Engelse versie op:

DoCmd.SendObject objecttype:=acSendReport, _
ObjectName:=strDocName, outputformat:=acFormatSNP, _
To:=strRecipient, Subject:=strSubject, MessageText:=varBody

Hoe kan ik ervoor zorgen dat in de gevallen dat office de outputformat: "Momentopname-indeling (*.snp)" of "acFormatSNP" niet herkent dat stukje dan vervangt met de juiste outputformat voor die office versie?


Met vriendelijke groet,

OblivianX.
 
Laatst bewerkt:
Beste FESTER,

Moet ik dat dan ook op elke pc doen waarop office staat geinstalleerd (Want dat wil ik voorkomen), of neemt hij die instelling gewoon mee in het .mdb bestand?

Met vriendelijke groet,

OblivianX.
 
Wat ik bedoel is je VBA altijd en alleen in het Engels op te stellen.

FESTER
 
Wat je ook kunt doen is een gewone foutafhandeling inbouwen:

On error Goto Foutafhandeling
DoCmd.OutputTo acOutputReport, rpt, "Momentopname-indeling(*.snp)", strx


exitFoutafhandeling:
exit sub

foutafhandeling:
if err.number = 2282 then
DoCmd.OutputTo acOutputReport, rpt, "Snapshot format", strx, True
resume next
else
msgbox "Error with number " & err.number & vbNewline _
& "Description:" & err.description
resume exitfoutafhandeling
end if

Gregor
 
Wat je ook kunt doen is een gewone foutafhandeling inbouwen

Dat kan maar is niet nodig als je in VBA standaard Engels gebruikt.
Dan werkt je VBA code namelijk altijd, onafhankelijk van de taalversie van je Office pakket.

FESTER
 
Beste gregorg,

Hoe plaats ik zo'n foutafhandeling als geheel van deze code, ik krijg namelijk alleen maar fouten.

Private Sub cmdEmail_Click()
On Error GoTo Err_cmdEmail_Click

Dim strDocName As String
Dim strRecipient As String
Dim strSubject As String
Dim varBody As String

strDocName = Me.lstRpt
strRecipient = Me.txtSelected & vbNullString
strSubject = "Uitdraai Overzichten - " & Date

varBody = "Beste Collega, " & vbCrLf & vbCrLf & _
"Bij deze de uitdraaien van onze overzichten (zie bijlage)." & vbCrLf & vbCrLf & _
"Opmerking: Om de rapporten van het .snp formaat te bezichten is Snapshot Viewer vereist." & vbCrLf & _
"http://www.microsoft.com/downloads/details.aspx?FamilyID=b73df33f-6d74-423d-8274-8b7e6313edfb&DisplayLang=en"

DoCmd.SendObject objecttype:=acSendReport, _
ObjectName:=strDocName, outputformat:="Momentopname-indeling (*.snp)", _
To:=strRecipient, Subject:=strSubject, MessageText:=varBody

Exit_cmdEmail_Click:
Exit Sub

Err_cmdEmail_Click:
MsgBox Err.Description
Resume Exit_cmdEmail_Click

End Sub
 
Beste FESTER,

Voor zover ik weet gebruik ik alleen maar engels als taal in mijn VBA, of bedoel je dat je bepaalde functie benamingen ook in het engels moet benoemen.

OblivianX
 
DoCmd.SendObject objecttype:=acSendReport, _
ObjectName:=strDocName, outputformat:="Momentopname-indeling (*.snp)", _
To:=strRecipient, Subject:=strSubject, MessageText:=varBody

Exit_cmdEmail_Click:
Exit Sub

Err_cmdEmail_Click:
if err.number = 2282 then
DoCmd.SendObject objecttype:=acSendReport, _
ObjectName:=strDocName, outputformat:="snapshot format", _
To:=strRecipient, Subject:=strSubject, MessageText:=varBody
resume next
else
MsgBox Err.Description
Resume Exit_cmdEmail_Click
end if

Je moet even controleren of dat het errornumber is.

Gregor
 
tip erbij,

clickyes.exe gebruiken
(klein progje om de beveiligingsvraag van outlook te omzeilen: automatisch verzenden)
Anders moet edere gebruiker altijd jan of nee kiezen.
Zoek via google, en het wijst zichzelf.....
 
gregorg bedankt,

Hij werkt nu goed. Alleen krijg ik nu de volgende foutmelding als ik de popup van outlook gewoon sluit zonder een mail te versturen:

Fout 2501 tijdens uitvoering:
De actie SendObject is geannuleerd.

En bij de foutopsporing verwijst hij naar het rode gedeelte:

Err_cmdEmail_Click:
If Err.Number = 2282 Then
DoCmd.SendObject objecttype:=acSendReport, _
ObjectName:=strDocName, outputformat:="snapshot format", _
To:=strRecipient, Subject:=strSubject, MessageText:=varBody

Resume Next
Else
MsgBox Err.Description
Resume Exit_cmdEmail_Click
End If



Frontier, tnx voor de tip.

OblivianX.
 
Misschien dat dit helpt, herstel onderstaande code zodat hij verder gaat zonder error melding.

En bij de foutopsporing verwijst hij naar het rode gedeelte:

Err_cmdEmail_Click:
If Err.Number = 2282 Then
DoCmd.SendObject objecttype:=acSendReport, _
ObjectName:=strDocName, outputformat:="snapshot format", _
To:=strRecipient, Subject:=strSubject, MessageText:=varBody
Resume Next
Else
End If
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan