11. november 2006 - 15:25Der er
13 kommentarer og 2 løsninger
Fejlhåndtering (automation af mailhåndtering)
Hej eksperter
Jeg har en database med en masse musiknumre, for hver post er det muligt at angive en lydfil og en tekstfil i felterne "Midifil" og "Sangtekst" i disse felter er der således angivet hele stien til den aktuelle lydfil og eller tekstfil.
På min form er disse 2 felter sat ind, jeg har så en knap på min form "cmdmail", når jeg klikker på denne knap oprettes en ny email i outlook og vedhæfter de filer der er angivet i de før nævnte felter, dette virker fint jf. nedenstående kode som ligger i et modul:
'fil1 = lydfilen, fil2 = tekstfilen'
Function sendMidifil(fil1 As String, fil2 As String) As String
Dim objOl As New Outlook.Application Dim objPost As MailItem Dim vFiles As Attachments
Set objPost = objOl.CreateItem(olMailItem)
Set vFiles = objPost.Attachments
vFiles.Add fil1 vFiles.Add fil2
With objPost .Subject = "" .To = "" .Body = "" '.Send .Display End With
Set objPost = Nothing Set vFiles = Nothing End Function
Som skrevet virker det perfekt, men der opstår problemer hvis ikke der er angivet filsti i begge felter (runtime error 94), der kan sagtens være angivet en lydfil og ikke en tekstfil eller omvendt.
Hvordan håndterer jeg at der blot oprettes en mail med den eller de angivne filer der er registeret i de omtalte felter, som det er nu skal der være angivet filstier i begge felterne.
I dette særtema om aspekter af AI ser vi på skiftet fra sprogmodeller til AI-agenter, og hvordan virksomheder kan navigere i spændet mellem teknologisk hastighed og behovet for menneskelig kontrol.
Jeg har testet begge forslag, men desværre opstår der den samme fejl som beskrevet i starten Invalid use of Null. Den vil simpelthen have en filsti angivet i begge felter før koden virker.
>terry, jeg har også prøvet at ændre fil1 og fil2 til en variant i koden på denne måde, men igen med samme fejl:
Function sendMidifil(fil1 As String, fil2 As String) As Variant
Dim objOl As New Outlook.Application Dim objPost As MailItem Dim vFiles As Attachments
Set objPost = objOl.CreateItem(olMailItem)
Set vFiles = objPost.Attachments
'vFiles.Add fil1 'vFiles.Add fil2
If Len(Trim(fil1)) > 0 Then vFiles.Add fil1 If Len(Trim(fil2)) > 0 Then vFiles.Add fil2
With objPost .Subject = "" .To = "" .Body = "" '.Send .Display End With
Set objPost = Nothing Set vFiles = Nothing End Function
Måske jeg skal tænke det igennem på en anden måde, men kan ikke lige se det
Du skal måske kombinere Terry's forslag med at ændre Call sendMidifil(Me.Midifil, Me.Sangtekst) til Call sendMidifil(Nz(Me.Midifil,""), Nz(Me.Sangtekst,"")) Jeg tror det vil løse dit Null problem
Sidste indlæg fra hugopedersen var det der skulle til. Tak for alle indlæggende, jeg deler point lige mellem hugopedersen og terry. Mange tak for hjælpen.
Hej terry, jeg havede faktisk prøvet Function sendMidifil(fil1 As variant, fil2 As variant) As Variant
Men dette gav en type objektfejl hvorfor ved jeg ikke, men jeg ændrede så til strings i stedet, og med inputtet fra hugopedersen fik jeg det til at virke ved at kombinere begge metoder
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.