2011-12-26 14 views
11

Ćwiczę VBA dla Access 2010.Usuwanie pierwszego znaku z ciągów znaków, jeśli jest to zgodne z czymś

Przeczytałem wszystkie sugerowane posty dotyczące mojego wpisu, ale nie znalazłem nic konkretnego. Wiem, jak przenosić określone znaki w ciągu znaków, ale nie wiem, w jaki sposób mogę usunąć konkretną postać, która jest równa czemuś.

Chcę przenieść znak 1 lub 1 z numerów telefonów, jeśli taki tam jest.

Przykład: 17188888888 na 7188888888 lub 1-7188888888 do 7188888888

Próbuję użyć instrukcji if zaczynając najpierw tylko usunięcie 1.

Numer telefonu zostanie wprowadzony jako ciąg nie liczb.

To jest to, co zacząłem: Ja dostaję komunikat o błędzie RemoveFirstChar jest niejednoznaczna.

Public Function RemoveFirstChar(RemFstChar As String) As String 
If Left(RemFstChar, 1) = "1" Then 
    RemFstChar = Replace(RemFstChar, "1", "") 
End If 
RemoveFirstChar = RemFstChar 
End Function 

Odpowiedz

16

Ja testowałem swoją funkcję w programie Access 2010 i pracował tylko fune .. Można również użyć tego kodu:

Public Function RemoveFirstChar(RemFstChar As String) As String 
Dim TempString As String 
TempString = RemFstChar 
If Left(RemFstChar, 1) = "1" Then 
    If Len(RemFstChar) > 1 Then 
     TempString = Right(RemFstChar, Len(RemFstChar) - 1) 
    End If 
End If 
RemoveFirstChar = TempString 
End Function 
+0

Nie jestem pewien, dlaczego nie działa, ale twój działa, więc w jaki sposób zmodyfikować to, aby również usunąć 1- od początku, jeśli jest? Dzięki! – Asynchronous

+0

Dziękujemy za cenny wkład - to naprawdę robi różnicę! Dzięki jeszcze raz! – Asynchronous

+0

Po przetestowaniu dla "1", możesz dodać drugi test dla "-" po pierwszym "końcu, jeśli" tam, który robi to samo ... – Karel

1

Nie ma nic szczególnie złego w kodzie, w „niejednoznaczne” błędu wiadomość w tym kontekście jest bardzo prawdopodobne, ponieważ masz inny sub lub funkcję w innym module o tej samej nazwie. Wyszukaj, aby znaleźć zduplikowaną nazwę.

Jeśli umieścisz funkcję w module należącym do formularza lub raportu, najlepiej jest pominąć "Publiczny". Jeśli chcesz, aby funkcja była używana przez kilka formularzy, utwórz nowy moduł, który nie jest dołączony do formularza i umieść w nim funkcje przeznaczone dla wszystkich formularzy i raportów.

Prawie zawsze dobrze jest podać pełny komunikat o błędzie i numer błędu.